我是 ASP.NET-MVC 的新手,我正在尝试创建一个简单的博客应用程序。我想为博客的详细信息页面使用自定义 url。
现在博客详细信息页面的 url 是标准的 'localhost/Blog/Details/3',但我想实际使用 url 'localhost/Blog/2012/06/blog-title',基本上使用'localhost/Blog/ {年}/{月}/{博客标题}'
我曾尝试在互联网上查看,但我不明白如何做到这一点,也无法获得关于如何做到这一点的简单教程。
我是 ASP.NET-MVC 的新手,我正在尝试创建一个简单的博客应用程序。我想为博客的详细信息页面使用自定义 url。
现在博客详细信息页面的 url 是标准的 'localhost/Blog/Details/3',但我想实际使用 url 'localhost/Blog/2012/06/blog-title',基本上使用'localhost/Blog/ {年}/{月}/{博客标题}'
我曾尝试在互联网上查看,但我不明白如何做到这一点,也无法获得关于如何做到这一点的简单教程。
您必须映射自定义路线
routes.MapRoute(
"Default", // Route name
"Blog/{action}/{month}/{BlogTitle}", // URL with parameters
new {controller ="MyController"}
);
localhost/Blog/text/text/text 类型的任何 url 都将映射到此路由
此网址将调用 MyController.Action(month,BlogTitle)
确保首先放置限制性更强的路由,因为将考虑与 url 匹配的第一条路由(从上到下)
您可以如下创建一条新路线Global.asax.cs
,
routes.MapRoute(
"Post", // route-name
"Blog/{year}/{month}/{BlogTitle}", // format
new { controller = "Books", action = "Post" }, // controller & action
new { year = @"\d{4}", month = @"\d{2}" } // constraints
);