南希.视图引擎.视图未找到异常: 无法定位视图'Index'

4
我知道这个问题在几个月前就被问过了,但没有得到回答。我的程序启动正常,但在返回 View["Index", blogPost] 后,它找不到 Index.cshtml 并引发异常。
Get["/"] = parameters =>
{
   var blogPost = new BlogPost
   {
       Id = 1,
       Title = "Test",
       Content = "Lorem ipsum...",
       Tags = { "c#", "aspnetmvc", "nancy" }
   };

   return View["Index", blogPost];
};

异常:

Nancy.RequestExecutionException: 哦,不好了! ---> Nancy.ViewEngines.ViewNotFoundException: 找不到视图 'Index' 当前可用的视图引擎扩展名:sshtml、html、htm、cshtml、vbhtml 已检查的位置:views/Home/Index-de-DE、views/Home/Index、Home/Index-de-DE、Home/Index、views/Index-de-DE、views/Index、Index-de-DE、Index`


你在 Index.cshtml 属性中设置了“始终复制到输出目录”吗? - michaelmsm89
这里也有同样的问题。有解决方法吗? - kudlatiger
3个回答

1
如果基督教徒的回答不能帮助你,就像它没能帮助我一样,那么就有另一种选择解决问题。另一种方法是确保在编译时将创建的文件复制到输出目录中。您可以在属性选项卡下检查它,如下所示。

Like its shown here


0

异常信息告诉你 Nancy 尝试查找视图的位置:

Locations inspected: views/Home/Index-de-DE,views/Home/Index,Home/Index-de-DE,Home/Index,views/Index-de-DE,views/Index,Index-de-DE,Index

异常还告诉您Nancy尝试查找哪些文件扩展名:
Currently available view engine extensions: sshtml,html,htm,cshtml,vbhtml

这意味着Nancy会在列出的位置之一查找具有列出扩展名之一的文件。因此,问题是您的index.cshtml是否位于列出的文件夹之一。如果不是,则可以将其移动到那里,或设置view location convention


我的“Index”是一个.cshtml数据,也包含在Views/Index中,该位置列在检查的位置中。 - user3929884
你的 Index.cshtml 的相对路径是什么?是 /Views/Index.cshtml 吗? - Christian Horsdal
是的,相对路径为 /Views/Index.cshtml - user3929884
我也遇到了同样的问题。 - Maksim Gumerov

0
我们遇到了这个错误,并注意到它抱怨的.cshtml文件没有被复制到服务器上。解决方案在Visual Studio中,在文件属性中,我们将Build Action更改为Content。这会强制将其包含在部署到服务器的构建工件中。同样,您可以像其他人提到的那样将Copy to Output Directory更改为Always;两者都可以,但我发现将文件设置为内容更具信息性。

File properties in Visual Studio

在您的情况下,我猜测您有一个需要设置此属性的Index.cshtml文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接