2015-11-27 70 views
0

如何使用剃刀視圖引擎與mvc4
渲染PartialView寫入字符串MVC4使用剃刀

隨着web視圖(CSS)我使用時呈現到控制器中的字符串局部視圖:

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(); 
      } 
     } 

我想,溶液用剃刀,但它不能解析圖,錯誤消息:

觀不能爲空=> ViewResult.View

+0

[Render a view as a string]可能重複(http://stackoverflow.com/questions/483091/render-a-view-as-a-string) –

+0

看看這個答案:http:/ /stackoverflow.com/a/2759898/1435590 –

回答

-1

如果找不到viewName,但viewResult.View屬性爲null,則對FindPartialView的調用不會引發異常。

此外,當視圖無法找到時,viewResult.SearchedLocations將包含視圖搜索位置的列表。這會告訴你你的視圖在哪裏被搜索到。

因此,考慮到原始問題中沒有太多信息(我不能通過額外的問題發表評論),我最好的辦法就是您傳入的viewName不能被任何視圖引擎找到。