2010-10-04 38 views
3

我已經創建了一個基於博客帖子的basecontroller類,我發現在我的控制器中發現ContentResult類型操作時會返回一個局部視圖。造成這種情況的代碼是在這裏:需要返回contentresult中的共享部分視圖

protected string RenderPartialViewToString(string viewName, object model) 
    { 
     if (string.IsNullOrEmpty(viewName)) 
      viewName = ControllerContext.RouteData.GetRequiredString("action"); 

     ViewData.Model = model; 

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

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

我用下面的返回是:

return Content(RenderPartialViewToString("LocationStaffSearch", lcps)); 

所以現在我需要返回的部分,這是一個共享視圖。我似乎無法弄清楚如何傳遞名稱以便找到部分名稱。如果我只是輸入名稱,它會呈現一個空白字符串。如果我放入Share/LocationStaffSearch,它會返回一個錯誤,表示視圖爲空。

回答

2

我找到了答案,問題在過去的某個時間點,我在控制器的視圖文件夾中創建了另一個具有相同名稱的局部視圖。它首先發現了一個,並將其呈現。一旦我拿出那個,共享的那個是唯一存在的,它就會被罰款。