我想组织我的解决方案,并查看了一些区域,但似乎:对“ ControllerName ”的请求已找到以下匹配的控制器...错误越来越出名。
我添加了一个Admin
区域,我的项目的文件夹结构如下所示:
- 领域
- 行政
- 控制器
- 家庭控制器
- AdminAreaRegistration.cs
- 行政
- 控制器
- 家庭控制器
在我的 AdminAreaRegistration 文件中,我有这个:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
我在注册我的路线时这样做:
routes.MapRoute(
"Home",
"Home/Index",
new { controller = "Home", action = "Index" }
);
我在这里Application_Start
阅读了我的方法来做到这一点:
ControllerBuilder.Current.DefaultNamespaces.Add("X.Web.Controllers");
可悲的是它没有修复错误。然后我在这里阅读到添加默认(根)控制器的名称空间,在 RegisterRoutes 方法中。
我知道区域都是关于路由的,文件夹只是需要的,但它们很有用。
HomeController
在这种情况下,我想知道如何将我的路线映射到特定的路线,一条在X.Web.Controllers
,另一条在X.Web.Areas.Admin.Controllers
. 另外,我想知道是否可以使用@Html.RouteLink
帮助程序而不是生成链接ActionLink
,因为在我到目前为止阅读的所有ActionLink
示例中,链接都是使用该方法生成的……这让我怀疑。
我将不胜感激提供的任何帮助/指导。谢谢。