我有一个动作,看起来像这样:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Register(AdRegister adRegister, IEnumerable<HttpPostedFileBase> files)
的AdRegister是一个复杂的类,我需要到一个重定向方法在注册行动进一步向下传递这个,像这样:
return this.RedirectToAction("Validate", adRegister);
的验证操作是这样的:
public ActionResult Validate(AdRegister adRegister)
我知道我可以传递简单的参数,但在这种情况下它是一个复杂的对象。此示例不起作用,adRegister的属性将为空。
这是可行的,如果是这样,如何?
BestRegards
更多信息:注册行动将采取adRegister做就可以了SOM魔法,然后它会被发送到验证行动。 Validate操作将向用户返回一个验证页面。当用户点击授予按钮时,adRgister将从表单中填充,然后发送到vValidate帖子,并保存它。我已经着手将adRegister暂时放入缓存或数据库中,但如果我可以简单地将它传递给下一个操作将会更好。
好的,那么它不可能直接发送复杂的对象到动作。TempData的问题可能是用户刷新页面。 Maby最好的方法是将其存储在数据库中,然后以设定的时间间隔运行清理(用户可以进入第2阶段,然后中止,如果是,数据仍然在数据库中)。 – Banshee 2011-03-23 18:44:55
如果他们在会话中放弃,我猜数据库会更好。 – 2011-03-23 18:45:56
@SnowJim,对于用户刷新页面,您是正确的。这就是为什么我不会推荐你使用它。最好的方法是将其存储在数据库或会话中。 – 2011-03-23 18:46:20