ActionResult를 문자열로 렌더링하고 ContentResult로 반환합니다.

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

문제

나는 actionresult를 문자열로 변환하려고 거의 노력하고있는 코드를 가지고있다.

EditableItem 메서드를 실행 한 후에는 html 스트림 응답을 문자열 작성기로 출력 한 다음 html을 가져 와서 수정 한 다음 html을 이스케이프 charachters와 함께 사용합니다.

내 문제는 코드의 끝에서 콘텐츠 결과를 반환 할 수 없다는 것입니다. 내가 ControllerContext를 망치고 있기 때문에 이것이라고 가정합니다. 이것이 문제라면 나는 완전히 확신하지만,이 코드는 나를위한 빈 html 페이지를 반환합니다. 하지만 결국, readonlyHtmlString 문자열은 훌륭한 HTML 코드로 가득차 있습니다. 그리고 정규 ContentResult 렌더링은 작동하지 않습니다. 이 문제를 어떻게 해결할 수 있습니까?

감사

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

    }

인기 답변

왜 그것이 작동하지 않았는지 잘 모르겠습니다. 따라서 여기에서 사용 된 메소드를 사용하여 코드를 폐기했습니다 ...

WCF REST 서비스 메서드에서 문자열에 MVC3 동작 렌더링




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.