我有一些代码几乎可以将actionresult转换为字符串。
在我执行方法EditableItem之后,它将html流响应输出到字符串编写器,然后我获取html并修改它,然后我将字符串中的html(带有转义字符串)。
我的问题是,在代码的最后,我无法返回内容结果。我认为这是因为我搞乱了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");
}
答案 0 :(得分:0)
我不确定它为什么不起作用,所以我废弃了代码,转而使用此处使用的方法......
Render an MVC3 action to a string from a WCF REST service method