将HTML表字符串通过Json从控制器传递到视图

时间:2010-12-20 14:49:14

标签: jquery html asp.net-mvc json

我想实现这个目标:

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中的视图显示的是:

“\ u003ctable border = 1 \ u003e \ u003ctr \ u003e \ u003cth \ u003eDate \ u003c / th \ u003e \ u003cth \ u003e期望信用证曝光\ 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 \ u003e \ u003c / TR \ u003e \ u003ctr \ u003e \ u003ctd \ u003e12 / 2/2010 \ u003c / TD \ u003e \ u003ctd \ u003e101,000 \ u003c / TD \ u003e \ u003ctd \ u003e100 \ u003c / TD \ u003e \ u003c / TR \ u003e \ u003ctr \ u003e \ u003ctd \ u003e12 / 3/2010 \ u003c / TD \ u003e \ u003ctd \ u003e102,000 \ u003c / TD \ u003e \ u003ctd \ u003e150 \ u003c / TD \ u003e \ u003c / TR \ u003e \ u003ctr \ u003e \ u003ctd \ u003e12 / 4/2010 \ u003c / TD \ u003e \ u003ctd \ u003e103,000 \ u003c / TD \ u003e \ u003ctd \ u003e200 \ u003c / TD \ u003e \ u003c / TR \ u003e \ u003ctr \ u003e \ u003ctd \ u003e12 / 5 / 2010 \ u003c / TD \ u003e \ u003ctd \ u003e104,000 \ u003c / TD \ u003e \ u003ctd \ u003e250 \ u003c / TD \ u003e \ u003c / TR \ u003e \ u003ctr \ u003e \ u003ctd \ u003e12 / 6/2010 \ u003c / 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 / TR \ u003e \ u003c /表\ u003e“

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

变化:

dataType: "jsonData",

dataType: "json",

希望问题得到解决。

答案 1 :(得分:0)

为什么不直接从html加载它? 不是渲染Json(content-type:application / json),而是将其作为部分html元素(content-type:text / html)返回,而从JQuery中加载dataType:“html”。

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