我試圖採用基本的可序列化對象,該對象位於可串行字典中,並將其傳遞給將使用該信息生成模態的JavaScript函數。該對象有幾個字符串變量,沒有什麼複雜的。JSON在傳遞給javascript函數時序列化了意外的令牌
這裏是我傳遞的對象:
[Serializable]
public class Details
{
public Details() {}
public string ID { get; set; }
public string Name { get; set; }
}
我設定的字符串相應的值,然後嘗試創建一個調用JavaScript的模態的鏈接(該ID是調用適當的:
protected string WriteDetailsLink(object ID)
{
string results = "";
JavaScriptSerializer jss = new JavaScriptSerializer();
results += "showDetailsModal(" + jss.Serialize(dictionaryList[ID.ToString()]) + "); return false;";
return results;
}
而且aspx頁面上的HTML鏈接本身:
<a id='detailsDialog' onclick="<%# WriteDetailsLink(Eval("ID")) %>">Details</a>
而且javasc對於模態RIPT功能,當前顯示什麼:
function showDetailsModal(Details) {
$('#DetailsModal_dialog').dialog(
{
modal: true,
//height: 500,
width: 600,
resizable: false,
draggable: false,
open: function() {
},
close: function(event, ui) {}
});
}
一切工作正常,該ID被傳遞下去,當我檢查後運行的鏈接它看起來像這樣:
<a id='detailsDialog' onclick="showDetailsModal({"ID":"40662463","Name":"72485-3"}); return false;">Details</a>
而且它看起來與我們項目中其他地方的代碼格式相同,但我一直收到
"Uncaught SyntaxError: Unexpected token ;"
錯誤。我不能爲了我的生活找出問題所在。如果我只將一個字符串傳遞給模態函數,它將起作用。我真的不想發送一堆笨拙的字符串,必須手動解析它們。
UPDATE:
是的,它是圍繞鏈接引號這是導致該問題。但現在我遇到了一個新問題:
我有一個模式的div設置,我試圖解析出名稱插入到它,這裏是新功能(通知名稱現在是BatchName) :
function showBatchDetailsModal(groupDetails) {
var tmpData = jQuery.parseJSON(groupDetails);
$('#DetailsModal_dialog').dialog(
{
modal: true,
//height: 500,
width: 600,
resizable: false,
draggable: false,
open: function() {
$('#detailsName').text(tmpData.BatchName);
},
close: function(event, ui) {}
});
}
我越來越
"Uncaught SyntaxError: Unexpected token o " in jquery.min.js
看起來像報價是搞砸了我! – adeneo