2011-08-19 68 views
0

調用返回結果罰款(對象列表)並將列表(c#)傳遞給以下jQuery Ajax函數的asp.net mvc3控制器方法:從asp.net mvc方法迭代結果集時jquery ajax錯誤

//$("#yourtableid > tr").remove(); 
function getAnswers(qid) { 
     var url = "/rankings/getanswers/" + qid; 
     $.ajax({ 
     type: "POST", 
     url: url, 
     data: {qid: qid}, //"{}", 
     dataType: "json", 
     success: function(response) { 
     var cars = response; 
     $('#rankings').empty(); 
     var i = 0; 
     debugger; 
     $.each(cars, function(index, car) { 
      $('#rankings').append(
      "<tr rorder=\"" + car.Ranking + "\"><td>" 
      + ++i.toString() + "</td><td align=\"left\"><span onclick=\"adjustRank('" 
      + car.Id + "')\" style=\"cursor:pointer;\">" 
      + car.Text + "</span></td><td></td></tr>" 
     ); 
     }); 
     }, 
     failure: function(msg) { 
     $('#rankings').text(msg); 
     } 
    }); 
} 

我看不出什麼毛病,但我得到以下錯誤:

微軟JScript運行時錯誤:無法分配給一個函數結果

+0

上whihc行嗎? – Baz1nga

+0

一個更多的建議使用單引號爲你的字符串和你的高保真擔心abt轉義雙引號 – Baz1nga

回答

1

我覺得++i.toString()是無效的。你想達到什麼目的? (++i).toString()

+0

我是這樣一個dork ...這完全是它。在我添加toString()方法之前,它正在工作。總體監督。謝謝! – bbqchickenrobot

0

做你的數組轉換成JSON在動作代碼..你可以如下做到這一點:

新JavaScriptSerializer()序列化(陣列);

還建議,使這個代碼可讀性和可維護性

var stringToAppend= $("<tr order=\"" + car.Ranking + "\"><td>") 
.append($((++i).toString() + "</td><td align=\"left\"><span onclick=\"adjustRank('") 
.append(car.Id + "')\" style=\"cursor:pointer;\">") 
.append(car.Text + "</span></td><td></td></tr>") 

和替換單引號的strnigs雙引號和硝基甲苯轉義雙引號

這做什麼它可以保證您的標記是很好的其他jquery會拋出一個錯誤和代碼是可讀的

+0

不,沒有這樣做,但數組可以在調試器中讀取,並且元素都有適當的值...我想我可以試試JSON – bbqchickenrobot