将C#自定义数组传递给JavaScript

时间:2016-08-21 09:56:25

标签: javascript c# arrays

我有以下C#数组,我想将它传递给JavaScript。实现它的最佳方法是什么?谢谢?

public static List<ListDetail> GetMyList()
{
    List<ListDetail> myList = new List<ListDetail>();
    myList.Add(new ListDetail() { Id = 1, Name = "Party" });
    myList.Add(new ListDetail() { Id = 2, Name = "Course" });
    myList.Add(new ListDetail() { Id = 3, Name = "Home" });
    return myList.ToArray;
}

1 个答案:

答案 0 :(得分:2)

您可以使用JsonConvert将对象转换为JSON字符串,因此可以通过JavaScript轻松操作它们

// declare variable on your class
public string strJson; 
...  
// assign value in relevant method
strJson = Newtonsoft.Json.JsonConvert.SerializeObject(new myList);

您需要做的就是在前端网站中公开字符串。

如果您正在使用网络表单,则可以在<%=strJson %>标记内使用<script>。或者,您可以使用文字。

示例:

<script type="text/javascript">
    var xyz = <%=strJson%>;
    console.log(xyz);
</script>

或者,如果您正在使用MVC ,则可以在控制器中使用ViewData["Json"] = strJson;,然后在@Html.Raw(ViewData["Json"])标记中使用<script>视图。

示例:

<script type="text/javascript">
    var xyz = @Html.Raw(ViewData["Json"]);
    console.log(xyz);
</script>