我想添加自定義路由,但無法使其工作。 我想使用正常的路由,除非它命中特定的控制器,使用不同的可選參數,而不是id。具有可選參數的額外MVC路由
在我的領域,這存在:
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/Shop/Products/Edit/1
它使用默認路由
編輯
我把它通過增加控制器=「我們的工作在我的路線上。
context.MapRoute(
"Admin_Users",
"Admin/Users/{action}/{username}",
new { controller="Users", action = "Index", username = UrlParameter.Optional }
);
我以爲這是它的URL部分(上面的行)的點?
請停止將「ASP.NET MVC」簡稱爲「MVC」。一個是框架,而另一個是獨立於語言的設計模式。這就像打電話給IE - 「互聯網」 –
不用擔心,我使用了aspnet.mvc標籤。有關這個問題的任何建議? – password
...實際上,我使用的標籤,如果你看編輯歷史 –