如何从ViewEngineResult获取呈现的PartialView

时间:2019-06-11 12:11:26

标签: .net asp.net-mvc asp.net-core

我正在尝试在Controller中渲染PartialView。我需要PartialView的HTML是特定的。我使用this code来获取HTML。我现在遇到的问题是我没有得到渲染的PartialView,而是整个View。我需要电子邮件呈现的PartialView的HTML。 ViewEngineResult没有显示获取PartialView的任何可能方法。

有没有办法获取PartialView的HTML?

这就是我使用帖子中代码的方式

            var partialView = PartialView("Index", viewModel);
            var html = partialView.ToHtml(HttpContext);

我不得不在ToHtml()方法中更改ViewResult参数。

之前

    public static string ToHtml(this ViewResult result, HttpContext httpContext)

之后

    public static string ToHtml(this PartialViewResult result, HttpContext httpContext)

2 个答案:

答案 0 :(得分:0)

返回所需的视图。

例如,假设您希望此“ InvalidConfirmToken”视图从控制器返回,请输入:

return View("InvalidConfirmToken");

,然后从layout.cshtml中删除部分渲染:

Html.RenderPartial("_ConfirmEmailAlert"); //remove this line

或将此行放在_ConfirmEmailAlert.cstml的顶部:

@{
    Layout = null;
}

答案 1 :(得分:0)

经过一番挖掘,我发现了this。现在可以正常运行