为什么路由映射的顺序在RouteConfig.cs

时间:2018-03-21 21:09:58

标签: asp.net-mvc asp.net-web-api

为什么订单在这里很重要?

如果我首先执行routes.MapHttpRoute然后我的api工作正常..如果我把它放在routes.MapRoute之后它不喜欢它我扔了我错误:

  

无法找到资源。

只要我在MapRoute之前放置mapHttpRoute,它就可以了。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Routing;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;

namespace WebApplication1
{
    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            //THIS FIRST
            routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

            // THIS SECOND
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );            

        }
    }
}

dfsd

0 个答案:

没有答案