C#MVC 3 / jQuery预览按钮CMS

时间:2011-04-07 23:50:15

标签: c# jquery asp.net-mvc asp.net-mvc-3 http-post

我正在为我的雇主开发一个新网站,其中包含许多CMS风格的功能。其中之一是能够创建页面,指定URL,菜单等。

这一切都很好。

我所追求的是一种在这些页面上创建“预览”按钮的方法,该按钮不会写入数据库。我想发布(最好是整个Model,如果没有,只是表单数据)到一个新窗口,并让该视图呈现页面。

我搜索过高低,我找不到一个有意义的例子。大多数人似乎放弃了:/

我自己尝试使用TempData,但是在我渲染页面之前TempData被清除了(因为我可以推断出有两个以上的步骤......)。

我必须POST,因为表单数据将包含HTML(在Telerik编辑器控件中)。

有没有人对完成此任务的好方法有任何想法?或者任何人都可以提供某些资源的链接? (我完全是空白的!)

此致

化学

5 个答案:

答案 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