Rendere un ActionResult a una stringa, restituirlo come ContentResult

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

Domanda

Ho del codice che sta quasi lavorando per convertire un'azione in una stringa.

Dopo aver eseguito il metodo EditableItem, restituisce la risposta del flusso HTML a un stringwriter, quindi ottengo l'html e lo modifica, quindi ho l'html in una stringa (con caratteri di escape).

Il mio problema è che alla fine del codice, non posso restituire un risultato del contenuto. Presumo questo perché sto scherzando con ControllerContext. Sono assolutamente sicuro se questo è il problema, ma questo codice restituisce una pagina HTML vuota per me. Ma alla fine, la stringa readtlyHtmlString è piena di un grande codice html. Anche il rendering di un ContentResult normale non funziona. Come posso rimediare a questo?

Grazie

    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");

    }

Risposta popolare

Non sono sicuro del motivo per cui non funzionava, quindi ho scartato il codice in favore dei metodi usati qui ...

Rendering di un'azione MVC3 su una stringa da un metodo di servizio REST WCF



Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché