【发布时间】:2013-01-17 03:01:50
【问题描述】:
我想添加自定义路线,但无法正常工作。 我想使用普通路由,除非它遇到特定控制器,否则使用不同的可选参数而不是 id。
在我所在的地区,这是存在的:
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
以上我尝试添加:
context.MapRoute(
"Admin_Users",
"Admin/Users/{action}/{username}",
new { action = "Index", username = UrlParameter.Optional }
);
在代码中,我调用页面:
@Html.ActionLink("Edit", "Edit", new { username=user.UserName })
它可以工作,但链接显示为 /Admin/Users/Edit/?username
我想要:/Admin/Users/Edit/username
但是,我想为所有其他页面保持相同的路线,即:
/Admin/Shop/Products/Edit/1
使用默认路由
编辑
我通过在我的路由中添加 controller="Users" 来让它工作。
context.MapRoute(
"Admin_Users",
"Admin/Users/{action}/{username}",
new { controller="Users", action = "Index", username = UrlParameter.Optional }
);
我认为这就是 URL 部分(上面那行)的重点吗?
【问题讨论】:
-
请不要将“ASP.NET MVC”简单地称为“MVC”。一种是框架,另一种是与语言无关的设计模式。这就像调用 IE - “互联网”
-
别担心,我使用了 aspnet.mvc 标签。对这个问题有什么建议吗?
-
...实际上我使用了标签,如果您查看编辑历史记录
标签: asp.net-mvc asp.net-mvc-routing