部署到生产时找不到索引视图?

尝试将MVC应用程序部署为现有ASP.NET 3.5应用程序(非MVC)的子应用程序时,我遇到了问题。 错误是:

找不到视图'index'或其主页。 搜索了以下位置:
 〜/查看/就业/的Index.aspx
 〜/查看/就业/ index.ascx
 〜/查看/共享/的Index.aspx
 〜/查看/共享/ index.ascx

在visual studio web developer express SP1中运行时,该应用程序可以正常工作,并且在配置为顶级网站时也可以正常工作。

我正在开发XP(IIS 6ish)所以我已经配置了通配符映射等.MVC应用程序被配置为直接位于根网站下面的虚拟文件夹( http://localhost/ROHAS ,其中ROHAS是虚拟文件夹指向我的MVC解决方案)。 我还尝试在global.asax.cs中添加路由来补偿子应用程序的虚拟路径:

 routes.MapRoute("NetPortal", // Route name
"localhost/rohas/{controller}/{action}/{id}");

并且

 routes.MapRoute("NetPortal", // Route name
"rohas/{controller}/{action}/{id}");

我甚至尝试添加另一个虚拟文件夹,它只指向我的MVC解决方案中的Views文件夹。

但是,我仍然得到上面详述的错误。

您必须在使用MVC项目的网站中创建一个虚拟目录,名称为“Views”,它指向MVC项目中的Views目录。 确保在IIS管理器中创建仅具有“读取”访问权限的VD,并确保没有 VD的应用程序。

(VD – >属性 – >确保应用程序部分显示为灰色)

您的视图文件似乎丢失了。 您的employmentController正在尝试返回名为index.aspx / index.ascx的视图/部分视图,该视图无法找到。 您应该将视图放在mvc.net应用程序目录的〜/ Views / employment文件夹中。 或者它可以放在〜/ Views / Shared /文件夹中

该错误与global.ascx文件中的路由无关