我有一個路由相當奇怪的問題。在這種情況下,爲什麼不使用Html.ActionLink的默認路由工作?
說迴路由不必擔心配置了一年後,我使用的是默認的路由,而忽略資源路線:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
// Route name
"{controller}/{action}/{id}",
// URL with parameters
new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional
});
我有一個RulesController
與Index
和行動Lorem
和Index.aspx
,Lorem.aspx
在Views> Rules目錄中。
我瞄準規則/指數maseter頁面上的ActionLink的:
<li><div><%: Html.ActionLink("linkText", "Index", "Rules")%></div></li>
鏈接被呈現爲http://localhost:12345/Rules/
和我得到一個404
當我鍵入Index
到URL中應用程序將其路由到該操作。
當我更改默認路由操作從"Index"
到"Lorem"
,動作鏈接被呈現爲http://localhost:12345/Rules/Index
添加Index
,因爲它是在默認路由和應用路線Index操作正確不再。
我已經使用Phil Haack's Routing Debugger,但輸入url http://localhost:12345/Rules/
也導致404也使用它。
我想我已經涵蓋了所有的菜鳥錯誤,相關的SO問題和基本的RTFM。
我假設「規則」不是路由中的任何種類的保留字。 除了更新路線並將它們打散之外,我還能看到什麼?
你有沒有定義任何IgnoreRoutes?你偶然在你的網站目錄中有一個名爲「規則」的文件夾? – 2011-01-06 17:34:02
我確實有默認的忽略路由(現在在問題中添加)和是在文件夾上;架構師尚未爲Business Objects創建另一個項目,因此在那裏有一個「規則」文件夾。我會重新組織和測試。如果是這樣,請添加此評論作爲答案。 – StuperUser 2011-01-06 17:43:14