从字符串创建PartialViewResult

本文关键字:PartialViewResult 创建 字符串 | 更新日期: 2023-09-27 18:29:34

我有一个操作方法,我需要从中返回从外部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"); }

因此,action方法返回一个PartialViewResult会更合适。

有没有类似于Controller.Content(上面使用的,返回ContentResult)的方法,当给定string时,会返回PartialViewResult

从字符串创建PartialViewResult

我不确定这是否有OOTB,但我的当务之急是返回一个MvcHtmlString并在局部视图中呈现它。类似(未经测试):

var model = new MvcHtmlString(myString);
return PartialView("RawHtml", model);

RawHtml.cshtml:

@model MvcHtmlString
@Model

不确定视图引擎是否会像那样喜欢@Model——您可能需要用某种东西包装它或进行一些转义。