Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Asp.net MVC ViewEngineResult+;嵌入视图_C#_Asp.net Mvc_Asp.net Mvc 4_Razor - Fatal编程技术网

C# Asp.net MVC ViewEngineResult+;嵌入视图

C# Asp.net MVC ViewEngineResult+;嵌入视图,c#,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,我有一个工作函数,它返回我一个已处理的视图(或部分视图) 我调用此函数将虚拟路径发送到视图,如: string viewHtml = GetViewPageHtml(this, model, "~/Views/PartialView.cshtml"); public static string GetViewPageHtml(Controller controller, object model, string viewName) { ViewEngineResult result =

我有一个工作函数,它返回我一个已处理的视图(或部分视图)

我调用此函数将虚拟路径发送到视图,如:

string viewHtml = GetViewPageHtml(this, model, "~/Views/PartialView.cshtml");

public static string GetViewPageHtml(Controller controller, object model, string viewName)
{
    ViewEngineResult result = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);

    if (result.View == null)
        throw new Exception(string.Format("View Page {0} was not found", viewName));

    controller.ViewData.Model = model;
    StringBuilder sb = new StringBuilder();
    using (StringWriter sw = new StringWriter(sb))
    {
        using (System.Web.UI.HtmlTextWriter output = new System.Web.UI.HtmlTextWriter(sw))
        {
            ViewContext viewContext = new ViewContext(controller.ControllerContext, result.View, controller.ViewData, controller.TempData, output);
            result.View.Render(viewContext, output);
        }
    }

    return sb.ToString();
}
是否有任何解决方案可以使用此函数查找嵌入视图

如果我有一个嵌入式视图并调用了相同的函数,它不会找到页面:

// not working
string viewHtml = GetViewPageHtml(this, model, "Application1.Views.EmbededPartialView.cshtml");

有两种方法可以实现这种解决方案:

代替资源中的视图,考虑RaxOrgEngor,它将视图编译成代码,并具有VIEWEngEng/LI>
  • 第二种方法是使用
    VirtualPAthProvider
    ——有关这方面的更多信息,您可以在此处找到: