加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – HttpPost和HttpGet属性在MVC:为什么使用HttpPos

发布时间:2020-12-15 19:19:57 所属栏目:asp.Net 来源:网络整理
导读:所以我们有[HttpPost],这是一个可选属性。我理解这限制了调用,所以它只能通过HTTP POST请求。我的问题是为什么我想这样做? 解决方法 想象以下: [HttpGet]public ActionResult Edit(int id) { ... }[HttpPost]public ActionResult Edit(MyEditViewModel m
所以我们有[HttpPost],这是一个可选属性。我理解这限制了调用,所以它只能通过HTTP POST请求。我的问题是为什么我想这样做?

解决方法

想象以下:
[HttpGet]
public ActionResult Edit(int id) { ... }

[HttpPost]
public ActionResult Edit(MyEditViewModel myEditViewModel) { ... }

这是不可能的,除非ActionMethodSelectorAttributes HttpGet和HttpPost使用。
这使得创建编辑视图变得非常简单。所有操作链接只是指向控制器。如果视图模型验证为false,您只需再次弹出到编辑视图。

我将是大胆的,并说这是最好的做法,当涉及到CRUDish的东西在ASP.NET MVC。

编辑:

@TheLight问在视图中需要什么来完成这个职位。它只是一个带有方法POST的表单。

使用Razor,这看起来像这样。

@using (Html.BeginForm())
{
    <input type="text" placeholder="Enter email" name="email" />
    <input type="submit" value="Sign Up" />
}

这将呈现以下HTML:

<form action="/MyController/Edit" method="post">    
    <input type="text" name="email" placeholder="Enter email">
    <input type="submit" value="Sign Up">
</form>

当表单提交时,它将向控制器执行Http Post请求。具有HttpPost属性的操作将处理请求。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读