我有ASP.NET MVC路由问题.
我准备了以下路由表来映射这样的url
mywebsite/mycontroller/myaction/14-longandprettyseoname
参数:
14 => id (integer)
longandprettyseoname -> seo_name (string)
routes.MapRoute(
"myname",
"mycontroller/myaction/{id}-{seo_name}",
new { controller = "mycontroller", action = "myaction", id = 0, seo_name = (string)null });
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" });
它适用于上面的URL,但它有以下类型的URL的问题
mywebsite/mycontroller/myaction/14-long-and-pretty-seo-name
这有可能使它工作吗?
编辑:
“myController的/ myaction / {} seo_name – (编号)”
好像在起作用
最佳答案 我不认为路线是可区分的,因为它无法确定哪个“ – ”分开来指定{id}和{seo-name}.
如何使用下划线为您的SEO名称?或者您可以使用SEO名称作为实际{id}.如果SEO名称是唯一的,那么这是一个非常可行的选项,您可以将其用作数据库中该条目的伪主键(假设它从数据库中提取内容)
另外,利用Phil Haack的route debugger看看什么有效,哪些无效.