C# · 12月 25, 2021

c# – System.Web.Mvc.HttpPostAttribute vs System.Web.Http.HttpPostAttribute?

在我的基于ASP.NET MVC的Web API项目中,我想使用HttpPost属性.当我将其添加到动作中时,IntelliSense会向我推荐这两个命名空间:

> System.Web.Mvc.HttpPostAttribute
> System.Web.Http.HttpPostAttribute

应该使用哪一个?为什么?

解决方法 System.Web.Mvc旨在与ASP.NET MVC控制器一起使用.
System.Web.Http旨在与ASP.NET Web API控制器一起使用.

MVC是Web应用程序,Web API是HTTP服务.

它们属于两个不同的框架.每个管道流都在寻找属于其各自名称空间的特定属性.

各个框架的路由引擎不知道另一个框架,因此如果在MVC操作上使用Web API属性,就好像根本没有属性一样.