这两种方法属性的主要功能有什么区别?
[HttpPost]
是一个用于修饰ASP.NET MVC中控制器或控制器动作的特性。你可以使用它来仅允许请求以“POST”类型进入此动作方法。
通常情况下,它的样子如下:
[HttpPost]
public ActionResult MyControllerAction()
{
// only can get here if httprequest was a "POST"
}
[WebMethod]
属性用于装饰旧版 .asmx 页面上的方法,通常用于创建 Web 服务。将 [WebMethod]
属性附加到公共方法上表示您希望将该方法公开为 XML Web 服务的一部分。
在 .asmx 页面上,通常看起来像这样:
public class Service1 : System.Web.Services.WebService
{
[WebMethod] // exposes XML Web Service Method
public DataSet IAmAWebServiceMethod()
{
//implementation code
}
}
它们不可比较,执行的操作完全不同。其中一个处理Web应用程序的“POST”请求,而另一个公开XML Web服务方法。
它们之间没有可比性。[WebMethod]
是遗留的 ASMX web 服务技术的一部分,不应该用于新开发。