.Net 将对象列表作为参数传递给 JQuery
Posted
技术标签:
【中文标题】.Net 将对象列表作为参数传递给 JQuery【英文标题】:.Net pass a list of objects to JQuery as parameter 【发布时间】:2017-08-25 01:31:40 【问题描述】:您好,我尝试将自定义对象列表作为参数传递给 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 运行时错误:对象不支持属性 或方法“每个”
有人可以建议如何解决它吗?
【问题讨论】:
【参考方案1】:问题 1:如果您只是将 List 组合成一个字符串,它将通过 .Net 知道的最简单方法(.ToString())变成一个字符串,从而产生“System.Collections.Generic.列表`1 [someclass]”。您需要将其转换为 Javascript 可以理解的内容,例如将其序列化为 JSON。您可以轻松地检查浏览器中的值,以查看您是否越来越接近有效的值。
问题 2:您用单引号 (updatePriceList('...')) 将值括起来,因此它仍会被解释为字符串;删除单引号。
【讨论】:
嗨,亚历克斯,感谢您的回答!您能否建议如何将其转换为例如json格式? 好吧,使用 JSON 序列化器 - .Net 中包含一些序列化器,但我一直使用第三方序列化器,但无论如何请参阅 ***.com/questions/3275863/…【参考方案2】:在发送之前将您的列表序列化为 JSON(几乎相同的问题) Converting list of objects to json array
【讨论】:
以上是关于.Net 将对象列表作为参数传递给 JQuery的主要内容,如果未能解决你的问题,请参考以下文章
在 ASP.NET C# 中使用 jQuery 将多个参数传递给 Web 方法
如何将具有多个对象的状态数组作为参数传递给graphql突变?
在 ASP.NET MVC 中的下拉列表上触发 jQuery 更改事件并将参数传递给 url 操作