Problèmes de remplacer la méthode Render
Je veux sérialiser tous mes sortie d'un Formulaire Web (à partir aspx et aspx.cs, sur .NET 3.5) en JSON. Donc, voici mon code :
protected string myText;
protected void Page_Load(object sender, EventArgs e)
{
myText = "<div><span>This is my whole code</span><div><a style=\"color:blue !important;\" href=\"#\">A link</a></div></div>";
}
protected internal override void Render(HtmlTextWriter writer)
{
var serializer = new JavaScriptSerializer();
Response.Write(Request["callback"] + serializer.Serialize(writer.ToString()));
}
mais j'obtiens cette erreur :
CS0507: 'moduli_Prova.Render(System.Web.UI.HtmlTextWriter)': cannot change access modifiers when overriding 'protected' inherited member 'System.Web.UI.Control.Render(System.Web.UI.HtmlTextWriter)'
Où je me trompe? Est-ce la bonne méthode pour le faire?
OriginalL'auteur markzzz | 2012-03-16
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas que vous avez
internal
sur un overrideRéférence ici
Peut-être quelque chose comme ceci:
Modifier
Nous savons que toutes les pages héritent de
page
.. Nous savons aussi qu'une nouvellehtmltextwriter
prendre dans unstringwriter
qui a unstringbuilder
dans le constructeur. Lorsque nous appelons ensuite la classe de base (page
) pour afficher le code html de notre nouveauHtmlTextWriter
. Il la rendre trop lehtmltextwriter
qui les rend également à lastringbuilder
. Nous avons donc maintenant le contexte html dans notrestringbuilder
. Alors que nous venons de dire à l'inscriptionHtmlTextWriter
qui est d'écrire lestring
de notrestringbuilder
.Référence ici
request?"System.Web.UI.HtmlTextWriter"
, pas la sortie de formulaire web converti en JSON :Oparce que vous êtes à l'écriture de l'objet lui-même, pas qu'il est de sortie.
uhm? Alors, comment puis-je obtenir la sortie? à partir de cet objet, je suppose? Je ne vois pas de méthode que de le faire...
Pouvez-vous m'aider? Comment puis-je accéder à la sortie?
Mise à jour de la réponse
OriginalL'auteur Arion