如何用ModelConvention在Asp.Net Core全局过滤器中改写长尾?

2026-04-01 12:040阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1893个文字,预计阅读时间需要8分钟。

如何用ModelConvention在Asp.Net Core全局过滤器中改写长尾?

从何说起?这次我从将项目迁移到Asp.Net Core的过程中,遇到了一个问题。在一个web程序中,同时包含了MVC和WebAPI,现在需要给WebAPI部分单独添加一个接口验证过滤器 + IActionFilter,常规做法一般是这样:

从何说起

这来自于我把项目迁移到Asp.Net Core的过程中碰到一个问题。在一个web程序中同时包含了MVC和WebAPI,现在需要给WebAPI部分单独添加一个接口验证过滤器 IActionFilter ,常规做法一般是写好过滤器后给需要的控制器挂上这个标签,高级点的做法是注册一个全局过滤器,这样可以避免每次手动添加同时代码也更好管理。注册全局过滤器的方式为:

services.AddMvc(options => { options.Filters.Add(typeof(AccessControlFilter)); });

但这样做会带来一个问题,那就是MVC部分控制器也会受影响,虽然可以在过滤器中进行一些判断来区分哪些是MVC Controller哪些是API Controller,但是平白无故给MVC增加这么一个没用的Filter,反正我是不能忍,所以寻找有没有更好的办法来实现这个功能。

于是ModelConvention(可以翻译为模型约定)闪亮登场。

阅读全文

本文共计1893个文字,预计阅读时间需要8分钟。

如何用ModelConvention在Asp.Net Core全局过滤器中改写长尾?

从何说起?这次我从将项目迁移到Asp.Net Core的过程中,遇到了一个问题。在一个web程序中,同时包含了MVC和WebAPI,现在需要给WebAPI部分单独添加一个接口验证过滤器 + IActionFilter,常规做法一般是这样:

从何说起

这来自于我把项目迁移到Asp.Net Core的过程中碰到一个问题。在一个web程序中同时包含了MVC和WebAPI,现在需要给WebAPI部分单独添加一个接口验证过滤器 IActionFilter ,常规做法一般是写好过滤器后给需要的控制器挂上这个标签,高级点的做法是注册一个全局过滤器,这样可以避免每次手动添加同时代码也更好管理。注册全局过滤器的方式为:

services.AddMvc(options => { options.Filters.Add(typeof(AccessControlFilter)); });

但这样做会带来一个问题,那就是MVC部分控制器也会受影响,虽然可以在过滤器中进行一些判断来区分哪些是MVC Controller哪些是API Controller,但是平白无故给MVC增加这么一个没用的Filter,反正我是不能忍,所以寻找有没有更好的办法来实现这个功能。

于是ModelConvention(可以翻译为模型约定)闪亮登场。

阅读全文