我有一个在本地运行良好的MVC网站但是当我将其部署到我的Azure网站时,除了主页索引页面之外,每个网页都会出现此错误。
The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Sales/Index.aspx
~/Views/Sales/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/Sales/Index.cshtml
~/Views/Sales/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml
如果有必要,我可以提供更多信息,但是我在这个问题的所有报告中找不到任何有相同问题的人。大多数人合法地将文件的问题放在了错误的地方。但是,我的控制器和视图的结构很好,它们在本地工作。它只能在部署到我的Azure网站时找不到视图。
答案 0 :(得分:14)
在每个视图的属性中,我必须将Build Action更改为Content,并且发布实际部署了.cshtml文件。
答案 1 :(得分:2)
对于那些使用ASP.NET Core应用程序的人来说,解决方案是将“Views”添加到publishOptions.include
数组中:
"publishOptions": {
"include": [
"wwwroot",
"Views",
"web.config"
]
},
答案 2 :(得分:1)
确保您的View真正复制到服务器。
在Visual Studio中,右键单击视图,选择"属性"并检查"复制到输出目录"属性。也许你有"不要复制"选择?
对于Azure上的部署选项,我建议this article。
这也可能是路由问题 - 请参阅here。
答案 3 :(得分:0)
我遇到了这个问题,并且通过同事的git merge从.csproj文件中删除了视图。我花了一段时间才弄明白这一点。希望这有助于某人。