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中传递给该调用的内容不是视图的路径,而只是视图名称 –