【发布时间】:2016-05-04 19:04:38
【问题描述】:
我在 .Net 4.5.2 中创建了一个测试 Web Api 2。
控制器代码是
using System.Web.Http;
using MyService.Models;
namespace MyService.Controllers
{
public class DefaultController : ApiController
{
[HttpPost]
[Route("Members/")]
public IHttpActionResult CreateRequest(MyRequestDto request)
{
return this.Ok();
}
[HttpGet]
[Route("Members/{id : int}")]
public IHttpActionResult GetMember(int id)
{
var response = new MyRequestDto()
{
FirstName = "Test F " + id,
LastName = "Test L " + id
};
return this.Ok(response);
}
}
}
web api 配置代码是
using System.Web.Http;
using MyService.Infrastructure;
namespace MyService
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
var formatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
formatter.SerializerSettings.ContractResolver =
new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
}
}
}
但是当我从soapUI请求服务时,我得到了
- 404 http 代码,用于将一些 JSON 发布到 http://localhost:15945/Members/
- 405 http 代码用于从http://localhost:15945/Members/123 获取
看起来路由工作不正常。但为什么呢?
【问题讨论】:
-
请分享RouteConfig!
-
@NazmulHasan 我用的是属性路由,你需要的代码都已经在问题里了。
标签: asp.net-web-api2 asp.net-web-api-routing