Dans le code-behind d'un projet ASP.NET (modèle MVP), j'inscris dans l'un des présentateurs une chaîne contenant quelque chose qui ressemble au contenu d'un fichier JSON.
Ensuite, je définis l'une des propriétés de la vue (affectée au présentateur) avec cette chaîne.
Dans la vue, la chaîne est affichée dans une zone de texte, mais elle n’a pas l’air agréable, car elle n’est pas structurée avec des nouvelles lignes et des sauts de ligne .. Je sais qu’il existe une fonction JSON appelée Stringify qui peut rendre de telles chaînes jolies.
Puis-je appeler cette fonction JSON dans code-behind? Par exemple, lorsque je définis la propriété de la vue dans le présentateur?
Alors je l'ai mis dans le présentateur:
this.view.ContentAsJson = GetContentAsJson(uuid);
C'est ce que j'aimerais faire, si c'est possible:
this.view.ContentAsJson = JSON.Stringify(GetContentAsJson(uuid));
GetContentAsJson
est une fonction qui crée et retourne la chaîne JSON.
C'est mon avis:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ContentJsonView.ascx.cs" Inherits="WebCenter.PP.PI.WebGui.View.FolderView.ContentJsonView" %>
<%@ Import Namespace="WebCenter.PP.Common.Domain" %>
<div id="DivContentJson" class="clearfix">
<p>
<asp:TextBox runat="server" ID="TbContentJson" TextMode="MultiLine" Height="100%" Width="100%" />
</p>
</div>
C'est la propriété dans la vue qui obtient la chaîne:
public string ContentAsJson
{
set
{
if (!string.IsNullOrEmpty(value))
{
TbContentJson.Text = value;
}
else
{
TbContentJson.Text = "";
}
}
}
JSON.stringify()
Convertit un objet JavaScript en une chaîne, vous pouvez le faire côté serveur comme ceci:
using System.Web.Script.Serialization;
var json = new JavaScriptSerializer().Serialize(obj);
Edit: JSON.stringify()
est une fonctionnalité côté client (navigateur). Donc, vous ne pouvez pas faire cela sur le serveur.
Vous pouvez utiliser quelque chose comme
JsonConvert.SerializeObject(ob)
De la bibliothèque: Newtonsoft.Json