我正在为我的雇主开发一个新网站,其中包含许多CMS风格的功能。其中之一是能够创建页面,指定URL,菜单等。
这一切都很好。
我所追求的是一种在这些页面上创建“预览”按钮的方法,该按钮不会写入数据库。我想发布(最好是整个Model,如果没有,只是表单数据)到一个新窗口,并让该视图呈现页面。
我搜索过高低,我找不到一个有意义的例子。大多数人似乎放弃了:/
我自己尝试使用TempData,但是在我渲染页面之前TempData被清除了(因为我可以推断出有两个以上的步骤......)。
我必须POST,因为表单数据将包含HTML(在Telerik编辑器控件中)。
有没有人对完成此任务的好方法有任何想法?或者任何人都可以提供某些资源的链接? (我完全是空白的!)
此致
化学
答案 0 :(得分:1)
您可以将模型存储在会话状态中。
答案 1 :(得分:1)
我会将数据存储在会话状态中。
这可能有用: http://davidhayden.com/blog/dave/archive/2011/02/09/SessionLessControllersMvc3.aspx
答案 2 :(得分:0)
您可以将模型序列化为XML,然后预览页面的操作方法可以对其进行反序列化。
请参阅this link。
答案 3 :(得分:0)
感谢帮助伙伴们/ gals。
我设法使用TempData。
我基本上将ajax发布到一个动作,该动作使用Guid作为关键字在TempData中存储内容。 Guid被返回,一旦ajax帖子返回一个带有target =“_ blank”动作的隐藏表单,就会发布到通过Guid的预览动作方法。然后,该预览操作将使用TempData中的内容呈现视图。
感谢您的建议..它让我思考!
此致
化学
答案 4 :(得分:0)
您仍然可以使用TempData。在第一步,您需要在Session中明确告诉离开值,例如:
string messageValue = (string) TempData.Peek("message"); // Does not cause ejection