从字符串创建PartialViewResult

时间:2013-08-30 12:04:28

标签: c# asp.net-mvc partial-views

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

1 个答案:

答案 0 :(得分:1)

我不确定是否有任何OOTB,但我的想法是返回MvcHtmlString并在局部视图中渲染。像(未经测试)的东西:

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

RawHtml.cshtml:

@model MvcHtmlString

@Model

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

相关问题