我有一个操作方法,我需要从中返回从外部URL获取的HTML,并使用以下代码来实现此目的:
[HttpGet]
[ChildActionOnly]
private ActionResult ExternalFoo()
{
var request = (HttpWebRequest)WebRequest.Create("http://example.com/page.html");
var response = (HttpWebResponse)request.GetResponse();
var stream = new StreamReader(response.GetResponseStream());
return Content(stream.ReadToEnd());
}
此操作方法的响应嵌入在视图中,因此:
@{ Html.RenderAction("ExternalFoo", "Controller"); }
因此,操作方法更适合返回PartialViewResult
。
是否有类似于Controller.Content
的方法(上面用过,返回ContentResult
),在给定PartialViewResult
时会返回string
?
答案 0 :(得分:1)
我不确定是否有任何OOTB,但我的想法是返回MvcHtmlString
并在局部视图中渲染。像(未经测试)的东西:
var model = new MvcHtmlString(myString);
return PartialView("RawHtml", model);
RawHtml.cshtml:
@model MvcHtmlString
@Model
不确定视图引擎是否会像@Model
那样 - 您可能需要将其包装成某些东西或进行一些转义。