1

我有一个操作方法,我需要从该方法返回从外部 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 方法返回 a 会更合适PartialViewResult

是否有类似于Controller.Content(上面使用的,返回 a )的方法,当给定 a 时ContentResult会返回a ?PartialViewResultstring

4

1 回答 1

1

我不确定这是否有任何 OOTB,但我的直接想法是返回一个MvcHtmlString并在部分视图中呈现它。类似(未经测试):

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

RawHtml.cshtml:

@model MvcHtmlString

@Model

不确定视图引擎是否会喜欢@Model这样 - 您可能需要将其包装在某些东西中或进行一些转义。

于 2013-08-30T12:24:15.747 回答