根据IApplicationModelConvention 接口 实现相应的方法

  

/// <summary>
/// 定义个类RouteConvention,private 来实现 IApplicationModelConvention 接口
/// </summary>

    public class RouteConvention : IApplicationModelConvention
{
private readonly AttributeRouteModel _centralPrefix; public RouteConvention(IRouteTemplateProvider routeTemplateProvider)
{ _centralPrefix = new AttributeRouteModel(routeTemplateProvider);
} //接口的Apply方法
public void Apply(ApplicationModel application)
{
application.Controllers.Where(d => !d.ControllerName.Contains("Base") &&
d.Attributes.Any(a => a.ToString().Contains(
"ApiControllerAttribute")))
.Each(controller =>
{
controller.Selectors
.Each(selectorModel =>
{
                //修改路由
selectorModel.AttributeRouteModel = _centralPrefix;
});
});
}
}

然后我们在statup中 配置mvcoption

servers.AddMvc(opts=>{
string apirouter = configuration["apirouter"];
if (apirouter.IsNullOrEmpty())
{
apirouter = "api/v{version}/[controller]";
}
// 添加我们自定义 实现IApplicationModelConvention的RouteConvention
opts.Conventions.Insert(, new RouteConvention(new RouteAttribute(apirouter)));
}

最新文章

  1. Jquery判断变量是否为空
  2. Rust初步(一):介绍
  3. [Asp.net 5] DependencyInjection项目代码分析4-微软的实现(4)
  4. 在linux中,rpm和yum有什么区别?
  5. AsyncTask下载JSON
  6. android如何实现开机自动启动Service或app
  7. Inaccurate values for &ldquo;Currently allocated space&rdquo; and &ldquo;Available free space&rdquo; in the Shrink File dialog for TEMPDB only
  8. WPF自学入门(七)WPF 初识Binding
  9. 安装CentOS7,连接mysql提示密码错误
  10. python基础——生成器表达式
  11. SpringMVC入门到精通(一)
  12. MySQL 5.7 忘记密码
  13. JAVA后端笔试试题(一)
  14. Android adb logcat使用技巧
  15. SWIFT推送之本地推送(UILocalNotification)之二带按钮的消息
  16. js中特殊转换字符为html标签
  17. 也谈时间管理和GTD
  18. 实现WinForm窗体的美化(借助第三方控件)
  19. 《selenium2 python 自动化测试实战》(7)——定位一组对象
  20. laytpl....

热门文章

  1. 腾讯Web前端开发框架JX(Javascript eXtension tools)
  2. Python类(六)-静态方法、类方法、属性方法
  3. 原生的ado.net(访问sql server数据库)
  4. 2015.3.31不使用debug/X86文件夹方式解决64/32位问题
  5. C#引用类库时出现黄色三角加感叹号的处理
  6. CentOS6.5安装完没有网络的解决办法
  7. sqlserver 使用维护计划备份
  8. C++深度解析教程学习笔记(2)C++中的引用
  9. java之类的封装
  10. 修改linux内核启动logo及显示位置