[英]Asp.net MVC ViewEngineResult + embeded views
我有一個工作功能,可以向我返回處理后的視圖(或部分視圖)
我稱之為將此函數發送到視圖的虛擬路徑,例如:
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");
有兩種方法可以實現這種甜蛋白:
VirtualPAthProvider
有關此內容的更多信息,請參見這里: 使用VirtualPathProvider從DLL加載ASP.NET MVC視圖
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.