【问题标题】:Pass a C# custom array to JavaScript将 C# 自定义数组传递给 JavaScript
【发布时间】:2016-08-21 09:56:25
【问题描述】:

我有以下 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;
}

【问题讨论】:

标签: javascript c# arrays


【解决方案1】:

您可以使用 JsonConvert 将您的对象转换为 JSON 字符串,以便它们可以轻松地被 JavaScript 操作

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

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

如果您使用网络表单,您可以在 &lt;script&gt; 标记内使用 &lt;%=strJson %&gt;。或者,您可以使用 Literal。

示例:

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

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

例子:

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

【讨论】:

  • 感谢您的回复。然后我怎样才能从 JavaScript 将 JSON 转换为数组?
  • 如果它是一个数组,你可以使用Newtonsoft.Json.Linq.JArray.Parse(strJson),如果它是一个对象,你可以使用Newtonsoft.Json.Linq.JObject.Parse(strJson)。或者您可以使用 Newtonsoft.Json.JsonConvert.DeserializeObject() 将字符串反序列化为特定的 .NET 类。
猜你喜欢
  • 2013-05-25
  • 2013-02-03
  • 2014-01-16
  • 1970-01-01
  • 1970-01-01
  • 2012-02-10
  • 1970-01-01
  • 2020-09-03
相关资源
最近更新 更多