我有两个针对同一视图的控制器操作。也就是说,我在从控制器操作调用 View 时指定了一个视图名称。第二个动作将一个 html 字符串放入 ViewBag。我只是想在视图中显示这个 html 字符串。我试过了
@ViewBag.HtmlDoc
和
@Html.Raw(ViewBag.HtmlDoc)
但没有渲染。
任何帮助,将不胜感激。提前致谢。
--控制器代码--
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");
}
我在 View 上调试了 ViewBag.Table 并且可以看到 html 字符串。但是视图永远不会更新/呈现。我用一个简单的文本进行了测试,例如:
@if (ViewBag.Table != null)
{
//@ViewBag.Table;
@:The day is: @DateTime.Now.DayOfWeek.
}
它进入代码,所以我知道 ViewBag.Table 不为空,但字符串也不会被渲染。
我需要刷新_layout.cshtml中的RenderBody()???或类似的东西?
-- ajax 调用--
按钮 onclick 事件调用此 ajax 方法:
$.ajax({
url: "/Home/ShowReport",
data: { URL: urlString} ,
type: 'POST',
success: function(data) {
alert(data);
},
error: function (e, textStatus, jqXHR) {
alert(e.statusText);
}
});