我有一個失控的請求控制器,我想在保持一個乾淨的URL的同時在多個控制器上劃分動作。我試圖嘗試路由,但沒有成功。我已經閱讀了關於路由的一些示例和教程,但是雖然我理解了這些示例,但似乎沒有什麼適用於我的案例,並且我覺得並不聰明。我想要的是在我的ApprovalController而不是我的RequestController上處理URL Requests/Approval
,所以我編寫了以下內容。MVC路由與部分類
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Approval",
"Request/{controller}/{action}",
new { controller = "Approval", action="Index", id = "" }
);
}
但它不工作。爲什麼?我的視圖中有一個名爲Approval的文件夾,並且在那裏有一個名爲Index.cshtml
的文件。我應該如何編碼MapRoute?
編輯
我說我有
您能否顯示您映射其他路線的順序?這可能是另一條路線匹配相同的請求。 – awbergs
我只有標準的「開箱」路線,否則。我更新了問題,以便您可以看到「RegisterRoutes」功能。 –
有關路由的一件事要記住,路由是按順序進行評估的,只要路由匹配,就是使用的路由,因此首先會導致它不再進一步查看。您可以通過名稱來指定路線,在這種情況下是「批准」 – Brian