当使用带有mvc4的剃须刀视图引擎时,如何将部分视图渲染到控制器中的字符串
使用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();
}
}
我用剃刀尝试了这个解决方案,但它无法解析视图,错误信息:
视图不能为null => ViewResult.View
答案 0 :(得分:-1)
如果找不到viewName但是viewResult.View属性为null,则对FindPartialView的调用不会抛出异常。
此外,当无法找到视图时,viewResult.SearchedLocations将包含搜索视图的位置列表。这将显示您搜索视图的位置。
所以,考虑到原始问题中没有太多信息(我无法用额外的问题发表评论),我最好的选择是你传入的viewName不能由任何视图引擎发现。