0
這裏的(使用MVC 2.0)的情況:.NET/jQuery的 - 預覽形式結果/渲染視圖爲字符串
我試圖建立一個功能,讓用戶可以預覽他們做出改變他們的生物/個人資料沒有實際上首先做出改變。用戶填寫表單,點擊「預覽」按鈕,看看他們的變化是什麼樣子。一個難題是前端有一個不同的主頁,所以我們需要渲染整個視圖,而不僅僅是一個控件。
這是我採取的方法:
- 非同步發佈連載形式向控制器動作
- 操縱模型以充實館藏,等不得到發佈
- 的回報前端視圖,將此修改後的模型傳遞給它
- 捕捉對異步方法的響應,將其包裝在iframe中並將其寫入頁面上的lightboxed div
代碼我使用...控制器動作(BuildPreview方法只是稍微改變模型)
[HttpPost]
[Authorize]
public ActionResult PreviewProfile(PersonModel model)
{
return View("Person", PeopleService.BuildPreview(model));;
}
HTML/jQuery的東西:
<script type="text/javascript">
$(document).ready(function() {
$("#previewButton").click(function (e) {
$.post("/PreviewProfile", $("#bioForm").serialize(), function (response) {
$("#previewFrame").html(response);
$("#holdMyPreview").modal({
overlayClose: true,
escClose: true,
autoResize: true,
}, "html");
});
});
});
模態方法只是一個基本的燈箱類型的東西。
運行到兩個問題:
- 編輯 - 移除了這個,我卻意外地拉着孩子控制
- IFrame不再渲染HTML(也許是因爲B/C它缺少的不是有效的HTML/body/head標籤?)。如果我只是將響應直接放入div中,而沒有iframe,則它會工作... albiet的樣式表錯誤。如果我嘗試將它插入iframe中,它只會將其視爲空白頁面,只是顯示html,head和body標籤。
有什麼想法?
山姆
PS:想這比在MSDN論壇(http://forums.asp.net/t/1675995.aspx/1?Rendering+a+view+into+a+string+),它沒有得到任何地方,我想我會看到如果SO有任何輝煌。