路線內的控制器參數應該是控制器的名稱,而不是路徑:
如果你的控制器名稱爲Menu
然後,將其更改爲這樣:
routes.MapRoute(
"RestaurantMenu", // Route name
"Restaurant/{id}", // URL with parameters
new { controller = "Menu", action = "Index", id = UrlParameter.Optional }
// Parameter defaults
);
而另一奇怪的是:這條路線坐在你的Global.asax文件裏面嗎?它應該位於您的RestaurantAreaRegistration.cs文件中,如下所示:
public class RestaurantAreaRegistration : AreaRegistration {
public override string AreaName {
get {
return "Restaurant";
}
}
public override void RegisterArea(AreaRegistrationContext context) {
context.MapRoute(
"RestaurantMenu", // Route name
"Restaurant/{id}", // URL with parameters
new { controller = "Menu", action = "Index", id = UrlParameter.Optional }
// Parameter defaults
);
context.MapRoute(
"Accommodation_default",
"accomm/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}
然後你可以給這個鏡頭。如果你想使用ActionLink的這個路線,使用這樣的:
@Html.ActionLink("MyLink", "Index", "Menu", new { id = 1, Area = "Restaurant"})
我寫上面的代碼用記事所以可能有一些錯別字:)
謝謝:)救我的一天 –