【发布时间】:2011-02-21 20:00:06
【问题描述】:
我做了一个这样的路由定义:
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 = ""});
在 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
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-routing