【问题标题】:Adding WebAPI to an existing MVC Project - getting 404 on将 WebAPI 添加到现有的 MVC 项目 - 得到 404
【发布时间】:2016-06-05 23:58:21
【问题描述】:

添加此内容时有许多建议的问题/答案。我经历了一堆,似乎没有任何帮助。

我确定我错过了一些简单的东西,只是看不到它。

我有一个现有的 ASP.Net MVC (V5) 站点。这是一个单页。

我正在向它添加一个 API 控制器 (WebAPI 2) 来处理一些 ajax 帖子。

尝试发布到我的控制器时,我似乎无法通过 404 错误。

我也在使用属性路由。

以下是我认为您需要查看的代码部分:

API 控制器

[RoutePrefix("api/services")]
public class ServicesController : ApiController
{
    [HttpPost]
    [Route("contact")]
    public HttpResponseMessage SendContact(ContactModel model)
    {
        return Request.CreateResponse(HttpStatusCode.OK, true);
    }

}

WebApiConfig - 在我尝试的时候,有几个部分被注释掉了。

public class WebApiConfig
{
    public static void Register(HttpConfiguration configuration)
    {

        configuration.MapHttpAttributeRoutes();


        //configuration.Routes.MapHttpRoute("API Default", "api/{controller}/{id}",
        //    new { id = RouteParameter.Optional });
    }
}

还有我的 global.cs - 再次注释掉我尝试过的东西

AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
//WebApiConfig.Register(GlobalConfiguration.Configuration);
BundleConfig.RegisterBundles(BundleTable.Bundles);
GlobalConfiguration.Configure(WebApiConfig.Register);

当尝试发布到我收到的 api 时:

POST http://localhost:8085/api/services/contact 404 (Not Found)

知道我错过了什么吗?

【问题讨论】:

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


    【解决方案1】:

    试着放

    GlobalConfiguration.Configure(WebApiConfig.Register);
    

    之前

    RouteConfig.RegisterRoutes(RouteTable.Routes);
    

    应该是这样的:

            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
    

    【讨论】:

    • 该死的...谢谢!我知道这很简单!再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    相关资源
    最近更新 更多