在asp.net mvc的使用缺省路由和使用ActionLink的ASP.NET MVC 3路由問題
@Html.ActionLink("title", "Index", "Question", new { id = 25}, null)
的結果是:
http://localhost/question/index/25
改變鏈接
http://localhost/question/25
我在Global.asax中默認添加了新的路由角色:
routes.MapRoute(
"default2", // Route name
"Question/{id}", // URL with parameters
new { controller = "Questions", action = "Index", id = UrlParameter.Optional} // Parameter defaults
);
我有同樣的問題用戶,標籤,...,我應該爲每個主題創建相同的角色嗎?
你在哪裏添加路由?如果您在{controller}/{action}/{id}的默認MVC路徑之後添加了它,則需要將其移至默認路徑上方。此外,你不能有兩個具有相同名稱的路線,所以我建議調用這條路線「問題」或什麼。 –
@NickBork,你說得對。我在'default'之前添加了這條路線。和名稱不同(更新後) – Mironline
那麼移動路由位置會導致ActionLink生成正確的actionlink代碼?如果是這樣,您可以創建另外兩條路線,一條用於「用戶」,另一條用於「標籤」,或者您可以修改新路線並使用路線約束進行一些過濾以僅匹配「問題」,「用戶」或「標籤」 –