[HttpPost]和[WebMethod]有什么区别?

5
这两种方法属性的主要功能有什么区别?

6
是的,但是我没有找到确切的答案。这个问题在这个网站上以前没有被问过,而你发布的可能重复的内容并不是我要问的。谢谢。 - JSideris
3个回答

6

[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服务方法。


1

它们之间没有可比性。[WebMethod] 是遗留的 ASMX web 服务技术的一部分,不应该用于新开发。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接