我做了这样的路由定义:
routes.MapRoute("ProductSearch", "Search-{MainGroup}-{SubGroup}-{ItemType}",
new {
controller = "Product",
action = "Search",
MainGroup = "", SubGroup = "", ItemWebType = ""});
如果参数为空,则无效。 实际上它解析了url,所以Url.Action方法解析了路径“Search-12--”但链接不起作用,所以页面的GET无法正常工作
使用斜杠工作Url.Action方法使“Search / 12”
"Search/{MainGroup}/{SubGroup}/{ItemType}"
是否有可能纠正它?
我使用默认的mvc项目制作了一个示例: 仅添加: 在默认路线之前:
routes.MapRoute(DefaultSearch", "Search-{MainGroup}-{Subgroup}-{ItemType}",
new {controller = "Home",action = "About", MainGroup = "",
Subgroup = "", ItemType = ""});
in Home / index.aspx:
<a href="<%=Url.Action("About", "Home", new {maingroup = "2", subgroup = "", itemType = ""}) %>">
Search</a>
在HomeController中:
public ActionResult About(string maingroup, string subgroup, string itemtype)
{
return View();
}
点击链接和404
答案 0 :(得分:1)
您使用的是哪个版本?在mvc 2中,您可以使用UrlParameter.Optional
作为路由的默认值。