如何使用web-api为PUT设置属性路由?

时间:2014-06-09 05:01:47

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

我正在尝试设置属性路由:

[HttpPut]
[Route("api/Config/Put")]
[ResponseType(typeof(void))]
public async Task<IHttpActionResult> Put(Config config) {
  if (!ModelState.IsValid) {
    return BadRequest(ModelState);
  }
}

这是我创造的。我的问题是我是否必须做任何事情来指定我发送给方法的config?还可以将此指定为控制器的方法而不是装饰每个方法吗?

1 个答案:

答案 0 :(得分:0)

请添加

config.MapHttpAttributeRoutes();
在您的WebApiConfig

所以现在就像这样

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

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

        }
    }

对于你的第二个问题:你有一些叫做[RoutePrefix("api")]属性的东西你可以添加到控制器中,这样这个部分就可以用于所有方法。在我们的案例中&#34; api&#34;是常见的