【问题标题】:Render PartialView Into String MVC4 Using Razor使用 Razor 将部分视图渲染到字符串 MVC 4
【发布时间】:2015-11-27 17:06:36
【问题描述】:

在使用带有 mvc4 的 razor 视图引擎时如何将部分视图呈现为控制器中的字符串

我使用了 webView (Aspx):

public static string RenderPartialView(this Controller controller, string viewName, object model)
        {
            if (string.IsNullOrEmpty(viewName))
                viewName = controller.ControllerContext.RouteData.GetRequiredString("action");

            controller.ViewData.Model = model;
            using (var sw = new StringWriter())
            {
                ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
                var viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
                viewResult.View.Render(viewContext, sw);

                return sw.GetStringBuilder().ToString();
            }
        }

我用 razor 尝试了该解决方案,但它无法解析视图,错误消息:

View 不能为 null => ViewResult.View

【问题讨论】:

标签: c# asp.net-mvc-4 razor


【解决方案1】:

如果无法找到 viewName 但 viewResult.View 属性将为 null,则调用 FindPartialView 不会引发异常。

此外,当无法找到视图时,viewResult.SearchedLocations 将包含搜索视图的位置列表。这将显示您的视图被搜索到的位置。

因此,鉴于您的原始问题中没有太多信息(而且我无法对额外问题发表评论),我最好的选择是任何视图引擎都找不到您传入的 viewName。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多