MVC Azure无法使用默认路由查找视图或主控,但在本地工作

时间:2015-04-16 23:06:24

标签: c# html asp.net-mvc azure razor

我有一个在本地运行良好的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网站时找不到视图。

4 个答案:

答案 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文件中删除了视图。我花了一段时间才弄明白这一点。希望这有助于某人。