2016-08-21 3 views
0

У меня есть следующий массив C#, и я хотел бы передать его JavaScript. Какой был бы лучший способ добиться этого? Спасибо?Передайте собственный массив 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; 
} 
+0

каким образом? От исходного кода сервера до веб-страницы? – kemiller2002

+0

Читайте это: http://stackoverflow.com/questions/11345382/convert-object-to-json-string-in-c-sharp –

ответ

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>. Кроме того, вы можете использовать Literal.

Пример:

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

Или, если вы используете MVC, вы могли бы использовать ViewData["Json"] = strJson; в контроллере, а затем @Html.Raw(ViewData["Json"]) Внутри <script> тега в вашем View.

Пример:

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

Благодарим за ответ. И как я могу преобразовать JavaScript JSON в массив? – Ado

+0

Вы можете использовать 'Newtonsoft.Json.Linq.JArray.Parse (strJson)', если его массив, или 'Newtonsoft.Json.Linq.JObject.Parse (strJson)', если это объект. Или вы можете использовать 'Newtonsoft.Json.JsonConvert.DeserializeObject()' для десериализации строки для определенного класса .NET. – Delosdos

Смежные вопросы