从一个控制器操作发布到另一个(不是重定向)

时间:2009-01-07 10:30:40

标签: asp.net-mvc forms post

我有一个操作,如果它满足某些条件,我需要将其发布到另一个操作上,但是当我转到下一个操作时,我无法保留表单数据。

接收动作接受FormCollection,发送动作

目前,我正在返回RedirectToAction(“action”,“controller”,form)。我可以确定表单变量在重定向之前有键(form.HasKeys()= true)。

但是当按下操作时,FormCollection为空(form.HasKeys()= false)。

有什么想法吗?是否有我错过的'PostToAction'方法?

仅供参考:我正在使用ASP.NET MVC Beta。非常感谢!

修改:对于遇到此问题的人,请查看PRG Pattern。这是我想要做的实际术语,也可以实现漂亮的网址。

2 个答案:

答案 0 :(得分:2)

我会重构两个控制器并将公共代码放入帮助程序或公共基类中。这样,两个控制器中的动作就可以委托给公共代码。

答案 1 :(得分:2)

当调用RedirectToAction时,它将进行HTTP重定向,并且它将对另一个动作URL进行GET。如果你需要重用另一个控制器中的代码,我会按照他们的建议去做,将公共移动到BaseController或业务服务,并将这两个操作委托给它。

此链接可能有所帮助: