从一个控制器操作发布到另一个控制器操作(不重定向)
-
05-07-2019 - |
题
我有一个操作,如果满足某些条件,我需要将其转发到另一个操作,但在传递到下一个操作时我无法保留表单数据。
接收操作接受 FormCollection,发送操作接受 FormCollection
目前,我正在执行 return RedirectToAction("action","controller", form)。我可以确定表单变量在重定向之前具有键(form.HasKeys() = true)。
然而,当执行该操作时,FormCollection 为空(form.HasKeys() = false)。
有任何想法吗?我是否缺少“PostToAction”方法?
供参考:我正在使用 ASP.NET MVC Beta。非常感谢!
编辑: 有此问题的朋友请查看 PRG模式. 。这是我想要做的实际术语,它也可以实现漂亮的网址。
解决方案
当 RedirectToAction 被调用时,它将进行 HTTP 重定向,并将 GET 发送到另一个操作 URL。如果您需要重用另一个控制器中的代码,我会按照 ewalshe 的建议进行操作,将公共部分移至 BaseController 或业务服务,并将两个操作委托给它。
此链接可能有帮助:
其他提示
我会重构两个控制器并将公共代码放入帮助程序或公共基类中。这样,两个控制器中的动作就可以委托给公共代码。
不隶属于 StackOverflow