【问题标题】:Unable to hit Web Api in .Net MVC无法在 .Net MVC 中访问 Web Api
【发布时间】:2015-10-27 16:53:00
【问题描述】:

您好,我刚开始使用 WebApi 为我的 Angular 应用程序设置 REST api。

我只是添加了一个“具有读/写操作的 Web API 2 控制器”

然后我只是尝试通过在浏览器中输入 url 来测试它,但我得到了 404。

一切都是开箱即用的。

WebApiConfig.cs 看起来像

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

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

RouteConfig.cs 是

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

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

全球.asax

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

        InitializeDatabase("Data Source=.;Initial Catalog=msproto;Integrated Security=True;MultipleActiveResultSets=True;");
    }

有什么我必须添加到网络配置中的吗?如果我添加一个普通控制器“具有读/写操作的 MVC 5 控制器”,它将在获取请求中达到我的断点。

【问题讨论】:

  • 它们在 global.asax 中的执行顺序是什么? Web API 路由优先还是 MVC 路由优先?
  • 哦.. 我什至根本看不到 webapi 配置被调用。我该如何注册?(对不起,我是 js 开发人员!)
  • 我更新了我的帖子并添加了全局 asax,我添加了 GlobalConfiguration...但仍然无法正常工作
  • nm 我接受了您的评论,并认为我应该将它移到顶部。看起来它现在可以工作了!

标签: c# .net asp.net-mvc asp.net-web-api2


【解决方案1】:

确保 Web API 路由在您的 Global.asax 中的 MVC 路由之前注册

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-06
    • 2021-11-10
    • 2016-02-08
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    相关资源
    最近更新 更多