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

时间:2009-09-04 12:23:46

标签: c# asp.net asp.net-mvc view windows-xp

尝试将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文件夹。

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

2 个答案:

答案 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文件中的路由无关