Rendre un ActionResult en chaîne, le renvoyer sous la forme ContentResult

asp.net-mvc-3 c# html-agility-pack

Question

J'ai du code qui fonctionne presque pour convertir un résultat en action en chaîne.

Après avoir exécuté la méthode EditableItem, il renvoie la réponse du flux HTML à un rédacteur de chaîne, puis je récupère le code HTML et le modifie, puis le code HTML se trouve dans une chaîne (avec des caractères d'échappement).

Mon problème est qu'à la fin du code, je ne peux pas retourner un résultat de contenu. Je suppose que c'est parce que je m'occupe du ControllerContext. Je suis tout à fait sûr que ce soit le problème, mais ce code me renvoie une page HTML vierge. Mais la fin, la chaîne readonlyHtmlString est pleine de code HTML génial. Et le rendu d'un ContentResult normal ne fonctionne pas non plus. Comment puis-je remédier à cela?

Merci

    public ActionResult Readonly(long Id = 0, long id2 = 0)
    {

         var localWriter = new StringWriter();
         var response = ControllerContext.RequestContext.HttpContext.Response;
         response.Output = localWriter;
         this.EditableItem( Id, id2 ).ExecuteResult(ControllerContext);
         localWriter.Flush();
         var htmlStringWithEscapes = localWriter.ToString();

         var htmlDoc = new HtmlDocument();
         htmlDoc.LoadHtml(htmlStringWithEscapes);

         foreach (HtmlNode inputNode in htmlDoc.DocumentNode.SelectNodes("//input"))
         {
            //var disabledNode = inputNode.Clone();
            inputNode.Attributes.Add("disabled", "disabled");
            //inputNode.ParentNode.ReplaceChild(inputNode, disabledNode);
         }

         var readonlyHtmlString = htmlDoc.DocumentNode.OuterHtml;

         //should return a readonly view at this point!!
         //return Content(readonlyHtmlString, "text");

         //this code doesn't work anymore either 
         return Content(String.Format("This is the Material Item Controller > Readonly and Id is {0} and id2 is {1}",Id, id2),"text");

    }

Réponse populaire

Je ne sais pas pourquoi cela ne fonctionnait pas, alors j'ai abandonné le code en faveur des méthodes utilisées ici ...

Rendre une action MVC3 en chaîne à partir d'une méthode de service WCF REST




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi