簡體   English   中英

Asp.net Mvc路由不起作用

[英]Asp.net Mvc Route not working

我在mvc 5項目上有以下路線。 當我嘗試通過url訪問操作時,它會引發404錯誤頁面。 我究竟做錯了什么?

RouteConfig.cs

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

       );

控制者

public class EventMoneyMovementsController : Controller
    {
        //
        // GET: /EventMoneyMovements/

        public ActionResult Index()
        {
            return View();
        }

        public ActionResult ListByEvent(int? eventID)
        {

            return View();
        }

    }

您注冊路線的順序很重要。 您應該始終在通用默認路由之前注冊您的特定路由

假設您像下面這樣在通用之前注冊了您的特定路線。

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 }
    );
}

使用此定義,您可以使用請求url訪問ListByEvent操作方法

yourSiteName/eventos/101/movimientosyourSiteName/eventos/101/movimientos yourSitename/EventMoneyMovements/ListByEvent?eventID=101 ,其中101是任何int值

您必須在默認MVC路由之前定義您的自定義路由,因為在路由配置中定義的所有路由都按照與在路由配置中定義的順序相同的順序維護在路由表中。

有關更多信息,請參見下面的URL:

http://www.asp.net/mvc/overview/older-versions-1/controllers-and-routing/creating-custom-routes-cs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM