You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将控制器返回的List<CartItemDetailDto>列表赋值给jQuery变量?

解决方法

直接写@(Model)肯定不行,因为MVC会把List对象直接执行ToString(),输出的是类似System.Collections.Generic.List1[CartItemDetailDto]`的字符串,不是有效的JavaScript对象/数组。

正确的做法是把模型序列化为JSON格式,再赋值给JS变量,具体代码分两种情况:

.NET Core/.NET 5+版本

<script>
    var modelList = @Html.Raw(System.Text.Json.JsonSerializer.Serialize(Model));
</script>

旧版ASP.NET MVC(比如MVC 5及以前)

<script>
    var modelList = @Html.Raw(Json.Encode(Model));
</script>

关键说明

  • 用Html.Raw是为了防止JSON字符串被HTML编码(比如双引号转成&quot;),确保输出的是JS能直接解析的合法JSON。
  • 如果你的CartItemDetailDto里有循环引用或者敏感字段,序列化前要处理好,比如用特性标记忽略敏感字段,或者配置序列化器排除循环引用。

内容的提问来源于stack exchange,提问作者nnmmss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 04:25:32