我正在寻找一个允许以下
的自定义路线http://localhost/blog/tags/foo
目前这是实际可行的
http://localhost/tags/Index/nhibernate
我尝试了以下但没有成功 - 任何帮助都将不胜感激
routes.MapRoute( “标签”, “{控制器} /(编号)”, new {Controller =“Tags”,action =“Index”,id = UrlParameter.Optional} );
routes.MapRoute( “标签”, “博客/ {}控制器/(编号)”, new {Controller =“Tags”,action =“Index”,id =“”} );
答案 0 :(得分:2)
你可以在你的global.asax中使用这样的东西:
routes.MapRoute("Tags",
"blog/tags/{TagName}",
new { Controller = "Tags", action = "ShowTag", TagName = "" });
然后你需要一个名为'TagsController.cs'的控制器,它带有一个名为ShowTag的ActionResult方法,以及一个名为ShowTag.aspx的相应aspx。您的ShowTag方法应如下所示:
public ActionResult ShowTag(string TagName)
{
//do stuff here to get Id from tag name and get other data etc...
return View();
}
请注意,在Global.asax.cs 中映射路径的顺序很重要。