2011-10-21 44 views
0

我想注入一个html字符串到一个div,但我有问题。我传递的csharp方法的返回结果并不是什么显示在div中。.ajax html注入

JavaScript函数...

$.ajax({ 
    type: "POST", 
    url: "MainPage.aspx/mapBuildLegend", 
    data: dataOut, 
    contentType: "application/json; charset=utf-8", 
    dataType: "text", 
    success: function (text) { $('#divLegend').html(text); }, 
    error: function() { alert('Could Not Load Legend!'); } 
}); 

字符串在C夏普的Web方法返回

"<table><tr><th>Color</th><th>Range</th></tr><tr><td><div class='divColorSwatch' style='background-color:#D3D3D3;'></div></td> <td> <div class='divColorLabel''>0 To 4.9999</div></td></tr><tr><td><div class='divColorSwatch' style='background-color:#FFC8C8;'></div></td> <td> <div class='divColorLabel''>5 To 9.9999</div></td></tr><tr><td><div class='divColorSwatch' style='background-color:#FF9696;'></div></td> <td> <div class='divColorLabel''>10 To 14.9999</div></td></tr><tr><td><div class='divColorSwatch' style='background-color:#FF6464;'></div></td> <td> <div class='divColorLabel''>15 To 19.9999</div></td></tr><tr><td><div class='divColorSwatch' style='background-color:#FF3232;'></div></td> <td> <div class='divColorLabel''>20 To 24.9999</div></td></tr><tr><td><div class='divColorSwatch' style='background-color:#FF0000;'></div></td> <td> <div class='divColorLabel''>25 To 100</div></td></tr></table>" 

什么在我的div结束了......

{"d":"\u003ctable\u003e\u003ctr\u003e\u003cth\u003eColor\u003c/th\u003e\u003cth\u003eRange\u003c/th\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003cdiv class=\u0027divColorSwatch\u0027 style=\u0027background-color:#D3D3D3;\u0027\u003e\u003c/div\u003e\u003c/td\u003e \u003ctd\u003e \u003cdiv class=\u0027divColorLabel\u0027\u0027\u003e0 To 4.9999\u003c/div\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003cdiv class=\u0027divColorSwatch\u0027 style=\u0027background-color:#FFC8C8;\u0027\u003e\u003c/div\u003e\u003c/td\u003e \u003ctd\u003e \u003cdiv class=\u0027divColorLabel\u0027\u0027\u003e5 To 9.9999\u003c/div\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003cdiv class=\u0027divColorSwatch\u0027 style=\u0027background-color:#FF9696;\u0027\u003e\u003c/div\u003e\u003c/td\u003e \u003ctd\u003e \u003cdiv class=\u0027divColorLabel\u0027\u0027\u003e10 To 14.9999\u003c/div\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003cdiv class=\u0027divColorSwatch\u0027 style=\u0027background-color:#FF6464;\u0027\u003e\u003c/div\u003e\u003c/td\u003e \u003ctd\u003e \u003cdiv class=\u0027divColorLabel\u0027\u0027\u003e15 To 19.9999\u003c/div\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003cdiv class=\u0027divColorSwatch\u0027 style=\u0027background-color:#FF3232;\u0027\u003e\u003c/div\u003e\u003c/td\u003e \u003ctd\u003e \u003cdiv class=\u0027divColorLabel\u0027\u0027\u003e20 To 24.9999\u003c/div\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\u003cdiv class=\u0027divColorSwatch\u0027 style=\u0027background-color:#FF0000;\u0027\u003e\u003c/div\u003e\u003c/td\u003e \u003ctd\u003e \u003cdiv class=\u0027divColorLabel\u0027\u0027\u003e25 To 100\u003c/div\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e"} 

谢谢你的任何帮助,

Eric

回答

1

看起来它正在返回JSON。尝试

$('#divLegend').html(text.d); 

UPDATE

如果不工作,那么你只是需要返回的文本转换成JSON对象第一:

var jText = JSON.parse(text); 
$('#divLegend').html(jText.d); 
+0

不,没有回来,如果我尝试。也不,如果我使用HTML而不是文本作为返回类型... – eshepard

+0

更新 - 只是将返回的字符串转换为公认的JSON –

0

text对象在你成功功能实际上是一个集合。尝试将d对象内容放入div中。即:

success: function (text) { $('#divLegend').html(text.d);