2016-08-21 1 views
0

J'ai le tableau C# suivant et je voudrais le passer à JavaScript. Quel serait le meilleur moyen de l'atteindre? Je vous remercie?Passer un tableau personnalisé 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

De quelle manière? Du code côté serveur à une page Web? – kemiller2002

+0

Lisez ceci: http://stackoverflow.com/questions/11345382/convert-object-to-json-string-in-c-sharp –

Répondre

2

Vous pouvez utiliser JsonConvert pour convertir vos objets en une chaîne JSON, afin qu'ils puissent être facilement manipulés par JavaScript

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

Tout ce que vous devez faire alors est d'exposer la chaîne dans votre front-end site Internet.

Si vous utilisez des formulaires Web, vous pouvez utiliser <%=strJson %> dans un tag <script>. Alternativement, vous pouvez utiliser un littéral.

Exemple:

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

Ou, si vous utilisez MVC, vous pouvez utiliser ViewData["Json"] = strJson; dans votre contrôleur, puis @Html.Raw(ViewData["Json"]) dans une balise <script> dans votre vue.

Exemple:

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

Merci pour la réponse. Et puis, comment puis-je convertir JavaScript JSON en un tableau? – Ado

+0

Vous pouvez utiliser 'Newtonsoft.Json.Linq.JArray.Parse (strJson)' si c'est un tableau, ou 'Newtonsoft.Json.Linq.JObject.Parse (strJson)' si c'est un objet. Ou vous pouvez utiliser 'Newtonsoft.Json.JsonConvert.DeserializeObject()' pour désérialiser la chaîne dans une classe .NET spécifique. – Delosdos