c# - 使用 MVC 项目注册 Api Controller 路由

标签 c# asp.net-mvc asp.net-mvc-4

我向我的 MVC 项目添加了一个 Api Controller 。并进行了以下更改:

我的 WebApiConfig

public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "GetFirms",
                routeTemplate: "api/B2bApi/GetFirms",
                defaults: new { controller =  "B2bApiController", action= "GetFirms" });
        }
    }

我在 Global.asax 中注册这条路由(最后一行)

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
    GlobalConfiguration.Configure(WebApiConfig.Register);
}

我检查了调试,发现我的路由已注册。所以这是我的 Controller :

public class B2bApiController : ApiController
    {
        [HttpGet]
        public string GetFirms()
        {
            return "test";
        }
    }

当我导航到

/api/B2bApi/GetFirms

我得到了

404 error

.

注册api路由的正确方法是什么?

最佳答案

如果asp.net-mvc-4

WebApiConfig.Register(GlobalConfiguration.Configuration);

如果 asp.net-mvc-5 和 asp.net-web-api-2

GlobalConfiguration.Configure(WebApiConfig.Register); 

必须放在上面

RouteConfig.RegisterRoutes(RouteTable.Routes);

例子:

protected void Application_Start()
{
     AreaRegistration.RegisterAllAreas();

     //GlobalConfiguration.Configure(WebApiConfig.Register); // use if mvc5       
     WebApiConfig.Register(GlobalConfiguration.Configuration); // use if mvc4
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
}

关于c# - 使用 MVC 项目注册 Api Controller 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37184272/

相关文章:

c# - 在 mvc4 中创建通用 mvc View

asp.net-mvc - MVCSiteMapProvider - 显示父节点的标题

c# - 如何将 List<model> 从 MVC4 中的 View 传递到 Controller ?

c# - 替换 Unity RegisterType<From, To> 与 RegisterType<T> 中的注册类型

c# - "Connection must be open for this operation"ODP异常

c# - Linq to SQL、SQL Server 2008 和优化

jquery - 在页面加载时保持树状菜单打开

c# - 选择查询不适用于使用 Parameters.AddWithValue 的参数

c# - 推荐用于在 C# 中处理 xml 配置文件的类?

asp.net-mvc - "test"服务器中的 ASP.NET MVC 运行时安装要求