从类库添加控制器,为整个类添加唯一的路由规则

时间:2017-12-19 22:39:37

标签: c# asp.net asp.net-core asp.net-core-mvc

.NET Core 2.0似乎通过简单地在类库中添加控制器继承类然后调用:

,将mvc拆分成模块库变得更加容易。
services.AddMvc()
        .AddApplicationPart(Assembly.Load(new AssemblyName(assemblyName)))
        .AddControllersAsServices();

但是我想这只是将控制器添加到默认路由规则,除非我在控制器方法上面添加特定的Route属性。

如果我将整个模块逻辑分离到单个类库中,我希望整个库具有http:// {root} / ModuleName的路由规则,而不是必须将路由规则添加到每个控制器方法中属性。本质上,默认路由规则不会在我的应用程序中使用。应用程序将由所有独立库中的模块组成,每个模块名称都附加到根URL。

我想我可以通过手动添加引用.NET 4.5等控制器命名空间的路由规则手动破解它,但是有更简单的方法吗?

似乎.NET Core试图启用我想要的东西,但不是我的用例,除非我遗漏了什么?

如果我添加区域路由规则,例如

routes.MapRoute("areaRoute", "{area:exists}/{controller=Admin}/{action=Index}/{id?}");

然后,我可以使用区域来在控制器级别上发生此功能,例如

[Area("Admin")]
[Route("admin")]
public class AdminController : Controller
{
}

我可以通过创建一个继承自处理路由的基本控制器类的可继承类来自动化区域路由规则吗?

0 个答案:

没有答案
相关问题