在ASP MVC 4中的几个视图/控制器之间传递模型

时间:2014-01-16 09:56:36

标签: c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我有一个设计问题。我正在我的网上实施一个购买流程,它有4个步骤:

A -> B -> C <-> D -> E
  • A 构建PurchaseModel个对象,POST将其构建为B.
  • B 显示购买摘要。
  • C,D 登录/注册。如果用户已经登录,则此步骤是可选的。用户可以从C转到D,反之亦然。
  • E 发布到PayPal

我需要PurchaseModel A 前往 E ,所以我的问题是:

如何在控制器/视图之间传递PurchaseModel?在这种情况下,推荐的解决方案是什么?

注意: A,B,C和D 是具有属性[AllowAnonymous]的控制器。

更新

正确PurchaseModel存储在STEP B的会话变量中,然后在其他控制器中使用它吗?

1 个答案:

答案 0 :(得分:2)

我认为某个操作应该只接受与之相关的参数。在注册或登录的情况下,我将这些视为单独的问题,因此将PurchaseModel传递给它们是错误的。如果你在不同的步骤之间传递数据,这些步骤与所有步骤相关,我会通过传递一个公共视图模型或者从彼此继承的模型来传递数据,但是因为这不是你的情况,我将存储在会话中。这不会受到登录的影响。