【问题标题】:Post from one controller action to another (not redirect)从一个控制器动作发布到另一个控制器动作(不重定向)
【发布时间】:2010-09-30 00:13:12
【问题描述】:

我有一个动作,如果它满足某些条件,我需要转发到另一个动作,但是在传递到下一个动作时我无法保留表单数据。

接收动作接受一个FormCollection,发送动作则

目前,我正在执行 return RedirectToAction("action","controller", form)。而且我可以确定表单变量在重定向之前有键(form.HasKeys() = true)。

但是,当操作被触发时,FormCollection 为空(form.HasKeys() = false)。

有什么想法吗?是否有我缺少的“PostToAction”方法?

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

编辑:对于有此问题的人,请查看PRG Pattern。这是我想要做的实际术语,它也启用了漂亮的 url。

【问题讨论】:

    标签: asp.net-mvc forms post


    【解决方案1】:

    当调用 RedirectToAction 时,它会进行 HTTP 重定向,并会向其他操作 URL 进行 GET。如果您需要重用来自另一个控制器的代码,我会按照 ewalshe 的建议进行操作,将 common 移至 BaseController 或业务服务,并将这两个操作委托给它。

    此链接可能会有所帮助:

    【讨论】:

    • 爱德华多,感谢您的联系!看看 Stephen Walther 的例子会有所帮助。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-29
      • 1970-01-01
      相关资源
      最近更新 更多