如何在asp.net mvc中做长静态url

发布于 2024-08-12 08:48:04 字数 108 浏览 4 评论 0原文

在 ASP.NET MVC 中创建长静态 url 的最佳方法是什么?例如,假设我想创建以下网址。

例如:

/Packages/Somepackage/package a

what would be the best way to create long static urls in asp.net MVC? For example say I wanted to create the following url.

Ex:

/Packages/Somepackage/package a

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

多彩岁月 2024-08-19 08:48:04

如果您这样做是为了搜索引擎优化,可能有更好的方法。

检查这个问题的 URL,您会看到有一个名为 questions 的控制器、一个可以从数据库中查找该问题的 id 以及一个长静态用于 SEO 的 URL 部分:

http://stackoverflow.com/questions/1786793/how-to-do-long-static-urls-in-asp...

URL 的长静态部分只是控制器方法中的一个参数,作为文本字段存储在数据库中。您可以在该字段中放置任何您想要的内容,只要用破折号分隔单词即可(无论如何,搜索引擎似乎更喜欢这种方式)。它也是一个可选的,因此像

http://stackoverflow.com/questions/1786793

...这样的链接也可以工作。

If you are doing this for search engine optimization, there might be a better way.

Examining the URL for this question, you will see that there is a controller called questions, an id so that the question can be looked up from the database, and a long static part of the URL for SEO:

http://stackoverflow.com/questions/1786793/how-to-do-long-static-urls-in-asp...

The long static part of the URL is just a parameter in the controller method, stored as a text field in the database. You can put anything in that field that you want, as long as you separate the words with dashes (which is what the search engines seem to prefer anyway). It is an optional one too, so that links like

http://stackoverflow.com/questions/1786793

...also work.

隐诗 2024-08-19 08:48:04

创建一些标准路由定义,如下所示:

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}"
); 

routes.MapRoute(
    "Default2",
    "{controller}/{action}/{id}/{id2}"
);

然后创建一个名为 Packages 的控制器以及其中的一些操作,如下所示:

定义操作如下:

public ActionResult Somepackage(string id) 
{
    if (!string.IsNullOrEmpty(id) && id == "package")
    {
        //do something
    }
}

public ActionResult Somepackage2(string id, string id2) 
{
    if (!string.IsNullOrEmpty(id) && id == "package" 
    && !string.IsNullOrEmpty(id2) && id2 == "package2")
    {
        //do something else
    }
}

Create some standard routes definitions, like these:

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}"
); 

routes.MapRoute(
    "Default2",
    "{controller}/{action}/{id}/{id2}"
);

Then create a controller names Packages and some actions in it like this:

Define the action like this:

public ActionResult Somepackage(string id) 
{
    if (!string.IsNullOrEmpty(id) && id == "package")
    {
        //do something
    }
}

public ActionResult Somepackage2(string id, string id2) 
{
    if (!string.IsNullOrEmpty(id) && id == "package" 
    && !string.IsNullOrEmpty(id2) && id2 == "package2")
    {
        //do something else
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文