3
用下面的代碼:無法找到視圖
static string RenderViewToString(ControllerContext context,string viewPath,object model = null,bool partial = false)
{
// first find the ViewEngine for this view
ViewEngineResult viewEngineResult = null;
if (partial)
viewEngineResult = ViewEngines.Engines.FindPartialView(context, viewPath);
else
viewEngineResult = ViewEngines.Engines.FindView(context, viewPath, null);
if (viewEngineResult == null)
throw new FileNotFoundException("View cannot be found.");
// get the view and attach the model to view data
var view = viewEngineResult.View;
context.Controller.ViewData.Model = model;
string result = null;
using (var sw = new StringWriter())
{
var ctx = new ViewContext(context, view,
context.Controller.ViewData,
context.Controller.TempData,
sw);
view.Render(ctx, sw);
result = sw.ToString();
}
return result;
}
這一行後:執行
viewEngineResult = ViewEngines.Engines.FindPartialView(context, viewPath);
,我發現viewEngineResult爲NULL,我相信意味着觀點並沒有發現即使我將它正確放置在相同的路徑中。
歡迎來到Stack Overflow。我已將您的問題標題更新爲您遇到的實際相關問題。這與視圖做什麼並不重要,試圖解決的實際問題(除非我錯了)是您的視圖沒有找到。 –
謝謝....是的,你是正確的看法沒有找到,但我給出了確切的路徑.. :( –
你是什麼意思的「把它放在同一路徑」?IIRC,FindPartialView使用「按照慣例「搜索將在控制器的Views子文件夾中查找,然後在Shared中傳遞給該調用的內容不是視圖的路徑,而只是視圖名稱 –