【发布时间】:2011-10-07 15:00:38
【问题描述】:
我的主站点中有一个用于站点管理的子站点。网站物理存储在表单中
~/Views/Administration/ViewName/Index
内部有控制器
~/Controllers/Admin/ControllerName
我在尝试访问该页面时遇到异常。
未找到视图“索引”或其主视图或没有视图引擎 支持搜索的位置。以下位置是 搜索到:~/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。我在哪里告诉系统视图在哪里?
【问题讨论】:
-
那 maproute 是 global.asax 中的第一个还是你把它放在默认之后? (如果是这样,默认值可能首先匹配...)
-
@Timbo 紧随其后。我改成以前的了。我仍然得到一个空白屏幕,但我没有看到任何错误。
-
酷,是的,在此之前默认匹配它。您必须按照最具体到最不具体的方式订购配置。我认为空白屏幕听起来像是一个单独的问题。
-
@Timbo - 抱歉,实际上错误仍然存在。他们只是晚点出现在我的电子邮件中(我在 global.asax 中捕获并丢弃电子邮件)。
-
它看起来像是将“ViewName”视为控制器,因此感觉这是一个路由问题。在 /Administration/BaseItem/Index url 中,如果路由图正确,您应该解析一个名为 BaseItem 的控制器和一个名为 Index 的视图,该视图位于 ~/Views/BaseItem/Index 中。这是您的控制器/视图的正确结构吗?
标签: asp.net-mvc-3