Asp.net Mvc Route无法正常工作

时间:2016-01-25 03:41:58

标签: c# asp.net-mvc

我的mvc 5项目有以下路线。当我尝试通过url访问操作时,它会抛出404错误页面。我做错了什么?

RouteConfig.cs

shouldComponentUpdate

控制器

  .... 
routes.MapRoute
       (
              name: "EventMoneyMovements2",
              url: "eventos/{eventID}/movimientos",
              defaults: new { controller = "EventMoneyMovements", action = "ListByEvent", eventID = UrlParameter.Optional }

       );

2 个答案:

答案 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/movimientosyourSitename/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