Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 呈现要查看的html字符串_C#_Jquery_Asp.net Mvc_Json_Asp.net Mvc 4 - Fatal编程技术网

C# 呈现要查看的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) {

我有两个针对同一视图的控制器操作。也就是说,我在从控制器操作调用view时指定了一个视图名称。第二个操作将html字符串放入ViewBag中。我只是想在视图中显示这个html字符串。我试过了

@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 方法的部分视图。这是一个需要学习的地方,但是这是一个更好的方法来实现你想要的,并且会给你更多的灵活性。