繁体   English   中英

将WebAPI添加到现有的MVC项目中-获取404

[英]Adding WebAPI to an existing MVC Project - getting 404 on

添加时有很多建议的问题/答案。 我经历了一堆,似乎没有帮助。

我确定我缺少简单的东西,只是看不见。

我有一个现有的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)

知道我缺少什么吗?

试穿

GlobalConfiguration.Configure(WebApiConfig.Register);

之前

RouteConfig.RegisterRoutes(RouteTable.Routes);

所以应该是:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM