我的mvc 5项目有以下路线。当我尝试通过url访问操作时,它会抛出404错误页面。我做错了什么?
RouteConfig.cs
shouldComponentUpdate
控制器
....
routes.MapRoute
(
name: "EventMoneyMovements2",
url: "eventos/{eventID}/movimientos",
defaults: new { controller = "EventMoneyMovements", action = "ListByEvent", eventID = UrlParameter.Optional }
);
答案 0 :(得分:1)
您注册路线的顺序很重要。您应始终在通用默认路由之前注册您的特定路由。
假设您在通用之前注册了您的特定路线,如下所示。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute
(
name: "EventMoneyMovements2",
url: "eventos/{eventID}/movimientos",
defaults: new { controller = "EventMoneyMovements", action = "ListByEvent",
eventID = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
使用此定义,您可以使用请求网址
访问ListByEvent
操作方法
yourSiteName/eventos/101/movimientos
或yourSitename/EventMoneyMovements/ListByEvent?eventID=101
其中101
是任何int值
答案 1 :(得分:1)
您必须在默认MVC路由之前定义自定义路由,因为路由配置中定义的所有路由都在路由表中按照我们在路由配置中定义的顺序进行维护。
有关更多信息,请参阅以下网址:
http://www.asp.net/mvc/overview/older-versions-1/controllers-and-routing/creating-custom-routes-cs