我有两个控制器操作,目标是相同的视图。也就是说,我在从控制器操作的视图调用中指定了一个视图名称。第二个动作在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