超級簡單的MVC站點,帶有一個Area來處理移動設備。除了需要參數的視圖外,我所有的Area路由都可以正常工作。路由 - 區域控制器/查看參數
在「正常」網站我有一個視圖視頻頁面,需要一個參數。
mysite.com/Video/123456
這很好用。在我的Area中針對移動內容進行了一些爭鬥之後,我甚至在Controller和View中使用完全相同的代碼/標記。因此,我想到的是,以下網址:
mysite.com/Mobile/Video/123456
會妥善解決。它沒有。我得到了404(未找到)。如果我參加了參數關:
mysite.com/Mobile/Video
它解決了正常。
我相信這肯定是我在路由中做錯了。以下是我的global.asax中的相應部分。任何幫助,將不勝感激。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Video", // Route name
"Video/{id}", // URL with parameters
new { controller = "Video", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] { "mysite.Controllers.VideoController" }
);
routes.MapRoute(
"NewsItem", // Route name
"NewsItem/{id}", // URL with parameters
new { controller = "NewsItem", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] { "mysite.Controllers.HomeController" }
);
routes.MapRoute(
"Mobile", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { area = "Mobile", controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] { "mysite.Areas.Mobile.Controllers.HomeController" }
);
routes.MapRoute(
"Mobile/Video", // Route name
"Mobile/Video/{id}", // URL with parameters
new { area = "Mobile", controller = "Video", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] { "mysite.Areas.Mobile.Controllers.VideoController" }
);
}
你在Global.asax中嘗試註冊方面:上MobileAreaRegistration
註冊? – wnascimento
是的,上面的代碼片段來自我的global.asax。我也在我的MobileAreaRegistration.cs文件中註冊路由。 – SteveInTN
context.MapRoute( 「Mobile_default」, 「Mobile/{controller}/{action}/{id}」, new {action =「Index」,id = UrlParameter.Optional} ); – SteveInTN