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

时间:2009-11-23 23:30:04

标签: asp.net asp.net-mvc asp.net-mvc-routing

在asp.net MVC中创建长静态URL的最佳方法是什么?例如,我想创建以下网址。

例如:

/ Packages / Somepackage / package a

2 个答案:

答案 0 :(得分:2)

如果您正在为搜索引擎优化执行此操作,则可能有更好的方法。

检查此问题的网址,您会看到有一个名为questions的控制器,一个id,以便可以从数据库中查找问题,以及一个长静态部分SEO的网址:

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

URL的长静态部分只是控制器方法中的一个参数,存储为数据库中的文本字段。你可以在你想要的那个领域放置任何东西,只要你用破折号分隔单词(这是搜索引擎似乎更喜欢的)。它也是可选的,所以像

这样的链接
http://stackoverflow.com/questions/1786793

......也有效。

答案 1 :(得分:1)

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

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

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

然后创建一个控制器名称包和其中的一些操作,如下所示:

定义这样的动作:

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
    }
}