下面是 WebApiConfig.cs 中的路由配置:
config.Routes.MapHttpRoute(
name: "DefaultApiPut",
routeTemplate: "api/{controller}",
defaults: new { httpMethod = new HttpMethodConstraint(HttpMethod.Put) }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { httpMethod = new HttpMethodConstraint(HttpMethod.Get, HttpMethod.Post, HttpMethod.Delete) }
);
这是我的控制器:
public class MyController : ApiController {
[HttpPut]
public void Put()
{
//blah
}
}
不知何故,当客户端发送带有 URL 的 PUT 请求时/api/myController/12345
,它仍然映射到中的Put
方法MyController
,我期待一个错误,比如找不到资源。
如何强制Put
方法只接受不带参数的请求?
提前致谢!