【问题标题】:Pass HTML Table string through Json from controller to view通过 Json 从控制器传递 HTML 表字符串到视图
【发布时间】:2010-12-20 14:49:13
【问题描述】:

我想实现这个:

public System.Web.Mvc.ActionResult ExposureGrid(Guid? id, decimal stdDev)
        {
            //return null;
            try
            {
                var str = "<table border=1>";
                str += "<tr><th>Date</th><th>Expected Credit Exposure</th><th>Max Credit Exposure</th></tr>";

                str += "<tr><td>12/1/2010</td><td>100,000</td><td>50</td></tr>";
                str += "<tr><td>12/2/2010</td><td>101,000</td><td>100</td></tr>";
                str += "<tr><td>12/3/2010</td><td>102,000</td><td>150</td></tr>";
                str += "<tr><td>12/4/2010</td><td>103,000</td><td>200</td></tr>";
                str += "<tr><td>12/5/2010</td><td>104,000</td><td>250</td></tr>";
                str += "<tr><td>12/6/2010</td><td>105,000</td><td>300</td></tr>";
                str += "<tr><td>12/7/2010</td><td>106,000</td><td>350</td></tr>";

            str += "</table>";
            return Json(str);
            }
            catch (Exception e)
            {
                return Json(e.ToString());
            }
        }

然后我把那个 Json 放在我的视图上,如下所示:

$.ajax({
                type: "POST",
                url: "<%= Url.Action("ExposureGrid", "Indications") %> ",
                dataType: "jsonData",
                data: tableJSON,
                success: function(data) {
                      existingDiv = document.getElementById('table');
                      existingDiv.innerHTML = data;
                }
            });

但是在 HTML 视图中显示的是这样的:

"\u003ctableborder=1\u003e\u003ctr\u003e\u003cth\u003eDate\u003c/th\u003e\u003cth\u003eExpected Credit Exposure\u003c/th\u003e\u003cth\u003eMax Credit Exposure\u003c/th\u003e u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e12/1/2010\u003c/td\u003e\u003ctd\u003e100,000\u003c/td\u003e\u003ctd\u003e50\u003c/td/tr\u003 u003e\u003ctr\u003e\u003ctd\u003e12/2/2010\u003c/td\u003e\u003ctd\u003e101,000\u003c/td\u003e\u003ctd\u003e100\u003c/td3/td/tr\u003e\u0003 u003e\u003ctd\u003e12/3/2010\u003c/td\u003e\u003ctd\u003e102,000\u003c/td\u003e\u003ctd\u003e150\u003c/td\u003e\u003c/ct3d\u003e\u0000000000 u003e12/4/2010\u003c/td\u003e\u003ctd\u003e103,000\u003c/td\u003e\u003ctd\u003e200\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\103e\100/u003e\100/u000 2010\u003c/td\u003e\u003ctd\u003e104,000\u003c/td\u003e\u003ctd\u003e250\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003c/6/201\u0003e td\u003e\u003ctd\u003e105,000\u003c/td\u003e\u003ctd\u003e300\u003c/td\u003e\u003c/tr\u00 3e\u003ctr\u003e\u003ctd\u003e12/7/2010\u003c/td\u003e\u003ctd\u003e106,000\u003c/td\u003e\u003ctd\u003e350\u003c/td\u003e\u003c/表\u003e"

我该如何解决这个问题?

【问题讨论】:

    标签: jquery html asp.net-mvc json


    【解决方案1】:

    改变:

    dataType: "jsonData",
    

    dataType: "json",
    

    希望问题应该得到解决。

    【讨论】:

      【解决方案2】:

      为什么不直接从 html 加载呢? 不是渲染 Json(内容类型:application/json),而是将其作为部分 html 元素(内容类型:text/html)返回,然后从 JQuery 中使用 dataType:“html”加载它。

      这样做,你甚至不必改变你的成功方法!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-11
        • 1970-01-01
        • 1970-01-01
        • 2015-12-23
        • 2017-02-21
        • 2019-11-27
        • 2014-04-01
        相关资源
        最近更新 更多