部署到生产时找不到索引视图?
尝试将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文件中的路由无关
- 如何使用DataContractJsonSerializer序列化/反序列化存储在对象字段中的DateTime?
- 使用HttpClient和Web API方法参数发布到Web API最终为空
- 需要通用实用程序C#方法来填充ASP.NET DropDownList
- Request.Browser.Browser在chrome返回“IE”
- 如何在我的Web.Config中切换2个连接字符串(为DBML激活一个)
- 在特定位置插入XML节点
- 使用$ .ajax调用Web方法时,身份validation失败错误
- 为什么在控制器上下文之外获取路由值如此困难?
- 使用Razor视图引擎将MVC 2项目迁移到MVC 3的最佳方法是什么?