繁体   English   中英

ASP.NET MVC中的异步GET / POST和操作名称冲突

[英]Async GET/POST and action name conflicts in ASP.NET MVC

为ASP.NET MVC创建编辑页面的推荐方法是在名为Edit的控制器上有两个方法:一个GET操作和一个POST操作,两者共享相同的名称但重载不同。 如果编辑失败,则在POST操作上显示验证错误。 然后,即使用户不在POST,用户也可以共享或添加URL:URL返回时返回GET版本。

到现在为止还挺好。 但是在控制器上ASP.NET异步模式 您有EditAsync和EditCompleted。 在两个不同的EditCompleted方法中,您如何告诉GET除了POST? 如果重命名POST操作,则会丢失前面讨论的好行为。

有没有一种很好的方法让这两种模式一起工作?

通常,XyzAsync()方法为XyzCompleted()方法提供一些状态对象,告诉它正在执行哪个工作单元,因此XyzCompleted()方法可以检查此对象并执行正确的操作。 但是,如果要为每个动词使用不同的Completed方法,可以通过以下方法实现:

[ActionName("Edit"), HttpGet]
public void EditGetAsync() { }

public ActionResult EditGetCompleted() { }

[ActionName("Edit"), HttpPost]
public void EditPostAsync() { }

public ActionResult EditPostCompleted() { }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM