我的主网站中有一个子网站用于网站管理。该网站以
形式存储〜/查看/管理/ VIEWNAME /索引
内置控制器
〜/控制器/管理/ ControllerName
我试图访问该页面时遇到异常。
未找到视图'index'或其主控或没有视图引擎 支持搜索的位置。以下地点是 搜索:〜/ Views / ViewName / index.aspx~ / Views / ViewName / index.ascx 〜/ Views / Shared / index.aspx~ / Views / Shared / index.ascx 〜/ Views / ViewName / index.cshtml~ / Views / ViewName / index.vbhtml 〜/ Views / Shared / index.cshtml~ / Views / Shared / index.vbhtml
我添加了路线
routes.MapRoute(
"Administration", // Route name
"Administration/{controller}/{action}/{id}", // URL with parameters
new { controller = "Administration", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
手动直接进入页面
不会导致异常,但我没有内容。这让我相信它没有找到视图。我做错了什么?
<小时/> 我认为问题是我告诉路由引擎如何路由到Controller,但我没有告诉系统如何路由到View。我在哪里告诉系统视图的位置?
答案 0 :(得分:3)
问题不在于路线,而在于设计。视图引擎无法找到您的视图,因为它无法找到正确的路径,因为默认视图引擎不是为搜索子网站而设计的。
不要创建子网站,而是在项目中将管理设为Area
。在AdministrationAreaRegistration.cs
中,您将设置类似于您添加的路线的路线。将您的视图放在Administration文件夹内的Views文件夹中(在Area文件夹中),一切都会正常工作。