C# 如何将c夏普列表对象传递到java脚本函数中?
我已经试过了,但是JS函数没有调用 首字母:C# 如何将c夏普列表对象传递到java脚本函数中?,c#,javascript,json,asp.net-mvc-4,C#,Javascript,Json,Asp.net Mvc 4,我已经试过了,但是JS函数没有调用 首字母: @{ List<CmsSite.Models.Category> category_list = (List<CmsSite.Models.Category>)ViewData["categories_details"]; } 现在arr是一个JSON对象数组 我看不到列表类别\u列表值 我应该如何在JS上解码它?客户端将看不到类别列表,因为这是服务器端代码,没有交付。您可以使用将列表序列化为JSON并将其输出
@{
List<CmsSite.Models.Category> category_list = (List<CmsSite.Models.Category>)ViewData["categories_details"];
}
现在arr是一个JSON对象数组
我看不到列表类别\u列表
值
我应该如何在JS上解码它?客户端将看不到
类别列表
,因为这是服务器端代码,没有交付。您可以使用将列表序列化为JSON并将其输出到Javascript变量,或使用Javascript引用隐藏字段
下面应该输出这个东西,只需找到一个放置它的地方:
@Html.Raw(new JavaScriptSerializer().Serialize(category_list))
因此,如果您在将在客户端上呈现的
脚本块中执行此操作,请将该调用的输出分配给一个变量,然后在加载页面时该变量就会出现。您可以通过以下方式执行此操作:
@Json.Encode(category_list)
Upd:
函数testFunc(arr){
对于(变量i=0;i
如果这不适用于您,那么您的模型类(CmsSite.Models.Category
)序列化可能会出现问题。不知道MVC只是随此而来。好东西。我已经编辑了这篇文章,现在我收到了很多东西。我试过这个列表,效果很好。见更新的答案。我已经编辑了假设,现在我得到了一系列的对象
@Html.Raw(new JavaScriptSerializer().Serialize(category_list))
@Json.Encode(category_list)
<script>
function testFunc(arr) {
for (var i = 0; i < arr.length; i++) {
alert(arr[i]);
}
}
</script>
<button onclick="testFunc(@Json.Encode(new List<string> { "1", "2", "3" }))">
Save
</button>