尝试将MVC应用程序部署为现有ASP.NET 3.5应用程序(非MVC)的子应用程序时出现问题。错误是:
The view 'index' or its master could not be found. The following locations were searched: ~/Views/employment/index.aspx ~/Views/employment/index.ascx ~/Views/Shared/index.aspx ~/Views/Shared/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<br>
"localhost/rohas/{controller}/{action}/{id}");
以及
routes.MapRoute("NetPortal", // Route name<br>
"rohas/{controller}/{action}/{id}");
我甚至尝试添加另一个虚拟文件夹,它只指向我的MVC解决方案中的Views文件夹。
但是,我仍然得到上面详述的错误。
答案 0 :(得分:2)
您必须在使用MVC项目的网站中创建一个虚拟目录,名称为“Views”,它指向MVC项目中的Views目录。确保在IIS管理器中创建仅具有“读取”访问权限的VD,并确保不拥有VD的应用程序。
(VD - &gt;属性 - &gt;确保应用程序部分显示为灰色)
答案 1 :(得分:2)
您的视图文件似乎丢失了。您的employmentController正在尝试返回名为index.aspx / index.ascx的视图/部分视图,该视图无法找到。您应该将视图放在mvc.net应用程序目录的〜/ Views / employment文件夹中。或者它可以放在〜/ Views / Shared /文件夹
中错误与global.ascx文件中的路由无关