c# - [HttpPost] 和 [WebMethod] 有什么区别?

标签 c# asp.net asp.net-mvc

这两个方法属性在功能上的主要区别是什么?

最佳答案

[HttpPost]是在 ASP.Net MVC 中装饰 Controller 或 Controller 操作的属性。如果请求类型为“POST”,您将使用它来仅允许请求进入此操作方法。

它通常看起来像这样:

[HttpPost]
public ActionResult MyControllerAction()
{
  // only can get here if httprequest was a "POST"
}

一个 [WebMethod]属性用于装饰通常用于制作 Web 服务的老式 .asmx 页面上的方法。附上 [WebMethod] Public 方法的属性表明您希望该方法作为 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 服务方法。

关于c# - [HttpPost] 和 [WebMethod] 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21398630/

相关文章:

c# - ScrollViewer 上 VerticalOffset 属性的双向绑定(bind)?

c# - MultiBinding - 指定的转换无效

c# - 将字符串写入不带格式的 XML 文件 (C#)

c# - 使用 MVC 核心进行捆绑和缩小

asp.net - 我什么时候应该使用 Webservice 属性 System.ComponentModel.ToolboxItem(false)

c# - jquery 的 ASP.NET MVC Form 和 serializeArray() 用 false 覆盖复选框的状态

asp.net - 在数据库表中存储字节数组的最节省空间的方法 - ASP.NET

c# - 无法将自定义 .css 添加到嵌套的 ASP.NET 表格单元格控件

asp.net-mvc - 在哪里可以找到 JSON ajax 返回类型所需的转义字符列表?

c# - 是否可以在 jQuery 数据表中放置编辑和删除按钮?