MVC 5 [HttpPost]属性或在表单标签内发布?

时间:2017-03-11 21:24:56

标签: asp.net-mvc asp.net-mvc-5

我是MVC的新手,我想知道属性[HttpPost]和表单中的post方法有什么区别

<form action="" method="post">
    <input type="text" name="something" value="something" />
    <input type="text" name="something" value="something"/>
    <input type="submit" value="Submit" />
</form>

?他们是同一件事还是......我很困惑

1 个答案:

答案 0 :(得分:1)

<form action="" method="post">  </form>

此处method="post" 不是ASP.NET MVC 。它是普通的HTML form tag specification,它告诉表单提交时,它将使用POST方法(而不是GET,其中表单数据作为查询字符串值提交)。使用POST时,表单数据将成为请求BODY的一部分。

在ASP.NET MVC世界中,属性装饰器[HttpPost]告诉框架,操作方法(我们使用此装饰器)是用于处理来自类型&#的客户端(浏览器)的请求34; POST&#34; (表格方法)。这有助于框架从请求主体读取数据并根据需要使用它(对于模型绑定等)

简而言之,两者都是不同的东西。一个是客户端,另一个是服务器代码。但是,您通常一起使用它来构建客户端表单和服务器端方法来处理提交的表单。