【发布时间】:2013-10-03 01:20:11
【问题描述】:
我的项目中有 2 个领域:
Areas | Admin
Areas | FrontEnd
我想要的是当我访问该站点时,默认路由应该从FrontEnd 区域加载控制器/视图/模型。将Url/Admin 用于管理面板是正常的,但我宁愿不必强制使用Url/FrontEnd(或其他一些变体)。基本上我不想在根级别使用 Controller / Model / View 文件夹。
我不确定如何更改代码以允许这样做,甚至这是一种可取的方法。有人可以提供一些指导吗?
我有什么:
routes.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new {
area = "Admin",
controller = "Home",
action = "Index",
id = UrlParameter.Optional
},
namespaces: new[] { "WebsiteEngine.Areas.Admin.Controllers" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {
area = "FrontEnd",
controller = "Home",
action = "Index",
id = UrlParameter.Optional
},
namespaces: new[] { "WebsiteEngine.Areas.FrontEnd.Controllers" }
);
但是这会产生错误:
The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Home/Index.aspx
~/Views/Home/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/Home/Index.cshtml
~/Views/Home/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml
我确实在该区域有可用的视图,但这看起来不像在那里。
【问题讨论】:
标签: asp.net asp.net-mvc-4 routing