0
爲什麼:ASP.NET MVC路由問題?
<%= Html.ActionLinkForAreas<UsersController>(c => c.User(), "My Details") %>
生成一個含有這樣的一個網址:
用戶/用戶
但是:
<%= Html.ActionLinkForAreas<BlaController>(c => c.Index(1), "My Bla Di Bla")%>
像這樣的URL:
布拉
而不是這樣的:
布拉/索引
換句話說,爲什麼是Index操作「吞噬」。這是否與看起來像這樣的路由有關:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
routes.RouteExistingFiles = true;
routes.IgnoreRoute("Content/{*wildcard}");
routes.IgnoreRoute("Scripts/{*wildcard}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
還是有另一個原因?我怎樣才能改變這種行爲?謝謝。
最良好的祝願,
基督教
謝謝。我問這是因爲我的mvc contrib網格吞噬了索引位。另請參閱:http://stackoverflow.com/questions/4452031/mvc-contrib-pager - 對我的問題的第三條評論。我想有一個選擇是重定向到索引動作,並使用其他一些動作,而不是Index作爲我的動作鏈接等。 – cs0815 2010-12-16 15:52:16
@csetzkorn,不知道是否有一些與尋呼機的idiosynchracy。但是你肯定不會*使用默認操作。您可以愉快地移除'action =「Index」'部分,您的網站就可以正常工作。只有一些網址會比其他網址更長,因爲它們會一直包含操作名稱。 – 2010-12-16 15:54:09
或者我可以爲一個控制器添加一個異常(使用長索引URL)?謝謝! – cs0815 2010-12-16 15:56:41