为 ASP.NET MVC 创建编辑页面的推荐方法是在名为 Edit 的控制器上使用两种方法:一种 GET 操作和一种 POST 操作,两者共享相同的名称,但重载方式不同。如果编辑失败,则 POST 操作上会显示验证错误。然后,即使 URL 不是 POST,用户也可以共享该 URL 或为其添加书签:URL 在返回时将转为 GET 版本。
到目前为止,一切都很好。但接下来就是控制器上的 ASP.NET 异步模式。您有 EditAsync 和 EditCompleted。在两种不同的 EditCompleted 方法中,如何区分 GET 和 POST?如果重命名 POST 操作,您将失去前面讨论的良好行为。
有没有一种好的方法可以让这两种模式一起工作?
通常,XyzAsync() 方法为 XyzCompleted() 方法提供一些状态对象,告诉它正在执行哪个工作单元,因此 XyzCompleted() 方法可以检查该对象并执行正确的操作。不过,如果你想拥有不一样的完全的每个动词的方法,可以通过以下方式实现:
[ActionName("Edit"), HttpGet]
public void EditGetAsync() { }
public ActionResult EditGetCompleted() { }
[ActionName("Edit"), HttpPost]
public void EditPostAsync() { }
public ActionResult EditPostCompleted() { }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)