这个existing question总结了我的问题的基础知识。那里最好的答案告诉了两种方法之间的区别。我正在寻找关于使用哪种方法的指南。
简而言之,我在控制器中有一个动作,它处理一个表单,然后显示处理结果。我应该何时使用return View()
而不是return RedirectToAction("FormResult")
?
答案 0 :(得分:22)
我冒昧地说,有一条硬性规则(尽可能多) - Post/Redirect/Get (PRG) pattern。 MVC的标准(以及html助手实际上希望你使用这种模式)是:
ModelState.IsValid=false
),则return View()
另有return RedirectResult
。如果出现错误,HTML帮助程序实际上会查看已重新显示的已发布值,而不是View(model)
传递给它们的内容 - 再次因为PRG模式“应该”发生的事情。
答案 1 :(得分:9)
你真的可以使用。一般来说,在发布表单后,您需要重定向,以便刷新页面不会导致表单重新发布。但是,有时候,将状态复制到新页面是不可行的,并且您的处理是幂等的,因此刷新不会对任何事情造成伤害。
这不是一个强硬的规则。你必须权衡利弊。
答案 2 :(得分:6)