Rendern Sie ActionResult in eine Zeichenfolge, und geben Sie sie als ContentResult zurück

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

Frage

Ich habe etwas Code, der fast arbeitet, um ein Actionresult in eine Zeichenfolge zu konvertieren.

Nachdem ich die Methode EditableItem ausgeführt habe, gibt es die HTML-Stream-Antwort an einen Stringwriter aus, und dann hole ich das HTML und modifiziere es, und dann habe ich das HTML in einer Zeichenkette (mit Escape-Zeichen).

Mein Problem ist, dass ich am Ende des Codes kein Inhaltsergebnis zurückgeben kann. Ich nehme an, das liegt daran, dass ich mit dem ControllerContext herumhantiere. Ich bin mir ganz sicher, ob das das Problem ist, aber dieser Code gibt eine leere HTML-Seite für mich zurück. Aber das Ende, die readonlyHtmlString Zeichenfolge ist voll von großem HTML-Code. Und das Rendern eines regulären ContentResult funktioniert auch nicht. Wie kann ich das beheben?

Vielen Dank

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

    }

Beliebte Antwort

Ich bin nicht sicher, warum es nicht funktionierte, also habe ich den Code zugunsten der hier verwendeten Methoden verschrottet ...

Rendern Sie eine MVC3-Aktion von einer WCF-REST-Servicemethode in eine Zeichenfolge



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum