2011-04-01 22 views
0

我控制器返回這個字符串像這樣:JSON字符串沒有得到在IE中正確添加了8

return Json(indication.Model.PrepaymentExport); 

我把它添加到div在前端像這樣:

$('#termSheetPrinted').append(data + '<br>'); 

它工作在FF但不在IE中=/

我似乎在IE中得到這個,但我不知道它是否有關?

網頁錯誤的詳細信息

用戶代理:Mozilla的/ 4.0(兼容; MSIE 8.0; Windows NT的5.1;三叉戟/ 4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0。 04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E) 時間戳:Fri,2011年4月1日20: 47:41 UTC

消息:未終止的字符串常量 行:133844620 字符:88 代碼:0 URI:http://localhost/Extranet/mvc/Indications.cfc/analysis/b16fc100-05ad-4631-882e-908e707480fd

編輯:

返回的字符串看起來是這樣的:

<div style="font-weight:bold">Prepayment Value</div><table id="TotalValueStringtableId" class="exposureGrid" width="150px" cellpadding="2" cellspacing="0"><tbody><tr><td></td><td colspan="5" class="resultsSubHeader" align="center"> Time Remaining </td></tr><tr><td class="resultsSubHeader">Replacement Rate</td><td class="resultsSubHeader">4 yrs</td><td class="resultsSubHeader">3 yrs</td><td class="resultsSubHeader">2 yrs</td><td class="resultsSubHeader">1 yrs</td></tr><tr><td targetrate="">3.38</td><td undefined="" style="white-space: nowrap;">$390,712</td><td undefined="" style="white-space: nowrap;">$298,676</td><td undefined="" style="white-space: nowrap;">$196,304</td><td undefined="" style="white-space: nowrap;">$99,828</td></tr><tr><td targetrate="">2.88</td><td undefined="" style="white-space: nowrap;">$197,881</td><td undefined="" style="white-space: nowrap;">$150,455</td><td undefined="" style="white-space: nowrap;">$98,663</td><td undefined="" style="white-space: nowrap;">$50,049</td></tr><tr><td targetrate="">1.88</td><td undefined="" style="white-space: nowrap;">($201,638)</td><td undefined="" style="white-space: nowrap;">($152,729)</td><td undefined="" style="white-space: nowrap;">($99,699)</td><td undefined="" style="white-space: nowrap;">($50,323)</td></tr><tr><td targetrate="">1.38</td><td undefined="" style="white-space: nowrap;">($406,621)</td><td undefined="" style="white-space: nowrap;">($307,772)</td><td undefined="" style="white-space: nowrap;">($200,445)</td><td undefined="" style="white-space: nowrap;">($100,920)</td></tr></tbody></table> 
+0

此外,它似乎工作有時,但不是所有的時間=/ – slandau 2011-04-01 20:49:04

+0

你什麼時候得到那個錯誤?當JSON返回時,或頁面加載? – Groovetrain 2011-04-01 20:56:59

+0

當我試圖用返回的Json做任何事情時,我會得到它。從服務器返回的是一個代表html代碼的c#字符串, – slandau 2011-04-01 20:57:58

回答

0

那天我遇到了這個問題。默認情況下,jQuery ajax結果被設置爲緩存。大多數瀏覽器都忽略它,但IE不支持。只需在js中設置ajax調用來緩存false,它就會開始工作。

1

有一些奇怪的關於你的服務器代碼。你已經在響應中顯示了HTML,但你在服務器上返回Json。這沒有意義。如果你有這是HTML的服務器上的某些字符串,然後返回原始HTML這樣的:

return Content(indication.Model.PrepaymentExport, "text/html"); 

,並從客戶端獲取:

$.ajax({ 
    url: '/home/foo', 
    type: 'POST', 
    success: function(result) { 
     $('#termSheetPrinted').append(data + '<br/>'); 
    } 
}); 

如果PrepaymentExport是要序列化的一些對象到JSON,然後像從前一樣從服務器返回Json,但在成功回調中,您不能將對象添加到DOM,只能添加HTML。所以在這種情況下:

$.getJSON('/home/foo', function(data) { 
    // data here will be an object so don't append it directly to the DOM. 
    // use some string property which represents HTML or build tags manually 
    // without more details about what indication.Model.PrepaymentExport represents 
    // on the server I cannot help much 
}); 
相關問題