.Net将对象列表作为参数传递给JQuery

时间:2017-03-30 22:33:26

标签: c# jquery .net

您好我尝试将自定义对象列表作为参数传递给JQuery,并希望jQuery将其识别为特定对象并循环遍历它。 课程是:

public class PriceSummary{
        public string ItemName { get; set; }
        public string ItemPrice { get; set; } } 

后端方法是:

public void updatePriceSummary(List<PriceSummary> PriceSummaryList){
        ScriptManager.RegisterStartupScript(Page, GetType(), "changePriceList",
           "updatePriceList('" + PriceSummaryList + "');", true);}

JQuery方法

function updatePriceList(PriceSummaryList) {
    PriceSummaryList.each(function () 
      {$('#ControlSummaryTitle').append('<tr id = "xxx"> <td class="SummaryItem">' +
      this['ItemName'] + '</td> <td class="SummaryPrice">' + this['ItemPrice'] + 
      '</td></tr>');   })
;}

然而,JQuery函数无法将参数识别为列表并且无法循环遍历它。错误消息是:

  

0x800a01b6 - JavaScript运行时错误:对象不支持属性   或方法&#39;每个&#39;

有人可以建议如何解决它吗?

2 个答案:

答案 0 :(得分:2)

问题1:如果你只是在编写一个List&lt;&gt;通过最简单的方法,它将变成一个字符串.Net知道,这是.ToString(),导致&#34; System.Collections.Generic.List`1 [someclass]&#34;。您需要将其转换为Javascript理解的内容,让我们将其序列化为JSON。您可以轻松检查浏览器中的值,看看您是否越来越接近有效的内容。

问题2:您使用单引号(updatePriceList(&#39; ...&#39;))围绕该值,因此它仍将被解释为字符串;删除单引号。

答案 1 :(得分:2)

在发送之前将列表序列化为JSON(几乎相同的问题) Converting list of objects to json array