C# ASP.NET MVC中的异步获取/发布和操作名称冲突
为ASP.NET MVC创建编辑页面的推荐方法是在名为edit的控制器上有两个方法:一个GET操作和一个POST操作,它们共享相同的名称,但重载方式不同。如果编辑失败,验证错误将显示在POST操作上。然后,用户可以共享该URL或将其添加到书签,即使该URL已从帖子中删除:该URL将在返回时转到GET版本 到目前为止,一切顺利。但还有一个问题。您已完成EditAsync和EditCompleted。在这两种不同的编辑方法中,你如何区分GET和POST?如果重命名POST操作,则会丢失前面讨论的良好行为 有没有一种很好的方法可以让这两种模式一起工作?通常,XyzAsync()方法为XyzCompleted()方法提供一些状态对象,告诉它正在执行的工作单元,因此XyzCompleted()方法可以检查这个对象并做正确的事情。但是,如果您想为每个动词使用不同的完成方法,可以通过以下方式实现:C# ASP.NET MVC中的异步获取/发布和操作名称冲突,c#,asp.net-mvc,asynchronous,C#,Asp.net Mvc,Asynchronous,为ASP.NET MVC创建编辑页面的推荐方法是在名为edit的控制器上有两个方法:一个GET操作和一个POST操作,它们共享相同的名称,但重载方式不同。如果编辑失败,验证错误将显示在POST操作上。然后,用户可以共享该URL或将其添加到书签,即使该URL已从帖子中删除:该URL将在返回时转到GET版本 到目前为止,一切顺利。但还有一个问题。您已完成EditAsync和EditCompleted。在这两种不同的编辑方法中,你如何区分GET和POST?如果重命名POST操作,则会丢失前面讨论的良好
[ActionName("Edit"), HttpGet]
public void EditGetAsync() { }
public ActionResult EditGetCompleted() { }
[ActionName("Edit"), HttpPost]
public void EditPostAsync() { }
public ActionResult EditPostCompleted() { }