C# 呈现要查看的html字符串
我有两个针对同一视图的控制器操作。也就是说,我在从控制器操作调用view时指定了一个视图名称。第二个操作将html字符串放入ViewBag中。我只是想在视图中显示这个html字符串。我试过了C# 呈现要查看的html字符串,c#,jquery,asp.net-mvc,json,asp.net-mvc-4,C#,Jquery,Asp.net Mvc,Json,Asp.net Mvc 4,我有两个针对同一视图的控制器操作。也就是说,我在从控制器操作调用view时指定了一个视图名称。第二个操作将html字符串放入ViewBag中。我只是想在视图中显示这个html字符串。我试过了 @ViewBag.HtmlDoc 及 但什么都没有呈现 任何帮助都将不胜感激。提前谢谢 --控制器代码--- 我调试了视图上的ViewBag.Table,可以看到html字符串。但视图从未更新/渲染。我用一个简单的文本进行了测试,如: @if (ViewBag.Table != null) {
@ViewBag.HtmlDoc
及
但什么都没有呈现
任何帮助都将不胜感激。提前谢谢
--控制器代码---
我调试了视图上的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);
}
});
更改操作方法以返回JSON内容
public ActionResult ShowReport(string URL)
{
string tableString = "";
[Code to Create table called ReportTable and add rows etc]
tableString = RenderControlToString(ReportTable );
//ViewBag.Table= tableString;
return this.Content(tableString, "application/json");
}
更改JQuery以重新利用返回值
success: function(data) {
$('#divTable').innerHTML(data);
并在视图中添加一个div,用于呈现html
<div id='divTable'></div>
更改操作方法以返回JSON内容
public ActionResult ShowReport(string URL)
{
string tableString = "";
[Code to Create table called ReportTable and add rows etc]
tableString = RenderControlToString(ReportTable );
//ViewBag.Table= tableString;
return this.Content(tableString, "application/json");
}
更改JQuery以重新利用返回值
success: function(data) {
$('#divTable').innerHTML(data);
并在视图中添加一个div,用于呈现html
<div id='divTable'></div>
您必须包含代码示例。要包含足够的代码并使其无法承受,这并不容易,但是您的场景不符合要求。谢谢,我缩短了我的解释,因为它太冗长了。这很奇怪。这不需要Html.Raw。你的第一次尝试应该每次都这样做。在填充ViewBag变量的位置添加控制器代码。除了填充失败之外,我想不出其他问题了。可能它没有填充任何内容。您是否确认tableString
已填充?使用调试器?您必须包含代码示例。要包含足够的代码并使其无法承受,这并不容易,但是您的场景不符合要求。谢谢,我缩短了我的解释,因为它太冗长了。这很奇怪。这不需要Html.Raw。你的第一次尝试应该每次都这样做。在填充ViewBag变量的位置添加控制器代码。除了填充失败之外,我想不出其他问题了。可能它没有填充任何内容。您是否确认tableString
已填充?用调试器?就是这样!!非常感谢!!表现在正在渲染!很乐意帮忙。以后,考虑使用子操作与子操作方法和jQuery <代码> .Load 方法的部分视图。这是一个需要学习的地方,但是这是一个更好的方法来实现你想要的,并且会给你更多的灵活性。就是这样!!非常感谢!!表现在正在渲染!很乐意帮忙。以后,考虑使用子操作与子操作方法和jQuery <代码> .Load 方法的部分视图。这是一个需要学习的地方,但是这是一个更好的方法来实现你想要的,并且会给你更多的灵活性。