我有兩個控制器操作,目標是相同的視圖。也就是說,我在從控制器操作的視圖調用中指定了一個視圖名稱。第二個動作在ViewBag中放入一個html字符串。我只是想在視圖中顯示這個html字符串。我曾嘗試呈現一個html字符串來查看
@ViewBag.HtmlDoc
和
@Html.Raw(ViewBag.HtmlDoc)
,但沒有被渲染。
任何幫助,將不勝感激。提前致謝。
--controller代碼---
public ActionResult ShowReport(string URL)
{
string tableString = "";
[Code to Create table called ReportTable and add rows etc]
tableString = RenderControlToString(ReportTable);
ViewBag.Table= tableString;
return View("ShowReport");
}
我調試的ViewBag.Table的查看,可以看到HTML字符串。但視圖永遠不會被更新/呈現。我用一個簡單的文字像測試:
@if (ViewBag.Table != null)
{
//@ViewBag.Table;
@:The day is: @DateTime.Now.DayOfWeek.
}
它進入代碼,所以我知道ViewBag.Table不爲空,但該字符串沒有得到呈現,無論是。
是否需要刷新_layout.cshtml中的RenderBody()?或者有什麼影響?
- 阿賈克斯call--
按鈕onclick事件調用此方法的ajax:
$.ajax({
url: "/Home/ShowReport",
data: { URL: urlString} ,
type: 'POST',
success: function(data) {
alert(data);
},
error: function (e, textStatus, jqXHR) {
alert(e.statusText);
}
});
您絕對必須包含代碼示例。不容易包含足夠的代碼,並且不會讓它壓倒性的,否則你的場景是不可追蹤的 – 2013-05-03 02:53:12
謝謝,由於它太羅嗦,我縮短了我的解釋。 – alpha 2013-05-03 03:18:44
這很奇怪。你不需要Html.Raw。你的第一次嘗試應該每次都做。添加控制器代碼,在其中填充ViewBag變量。我不能想到任何其他問題,而不是無法填充。 – 2013-05-03 03:23:28