System.Web.Http.HttpPut 和 System.Web.Mvc.HttpPut 有什么区别?
在 Web API 项目上使用 [HttpPut] 会导致错误 405 - 请求的资源不支持 http 方法“PUT”。
最佳答案
它们属于两个不同的框架。每个管道流都在寻找属于它们各自命名空间的特定属性。
各个框架的路由引擎不知道对方,所以如果在 MVC 操作上使用 Web API 属性,就好像根本没有属性一样,因此会遇到 405 错误。
确保在正确的 Controller 类型上使用正确的命名空间。如果文件中同时使用了两个命名空间,则通过调用 [System.Web.Http.HttpPut]
进行特定的 Web API 操作
[System.Web.Http.HttpPut]
public IHttpActionResult Put([FromBody]MyModel model) { return Ok(); }
和[System.Web.Mvc.HttpPut]
用于 MVC 操作
[System.Web.Mvc.HttpPut]
public ActionResult Put([FromBody]MyModel model) { return View(); }
关于c# - System.Web.Http.HttpPut 与 System.Web.Mvc.HttpPut 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44178056/