C# 如何将c夏普列表对象传递到java脚本函数中?

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并将其输出

我已经试过了,但是JS函数没有调用

首字母:

@{   
    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>