C# OnActionExecuting 跳过
时间: 2023-07-12 21:27:57 浏览: 53
在 C# 中,可以通过在 ActionFilterAttribute 中重写 OnActionExecuting 方法来实现在执行 Action 之前对请求进行拦截和处理。如果需要跳过该方法的执行,可以使用 SkipActionFilterAttribute 属性来标记该方法,如下所示:
```
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
public class MyActionFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
var skipFilter = context.ActionDescriptor.EndpointMetadata.OfType<SkipActionFilterAttribute>().Any();
if (!skipFilter)
{
// 执行自定义逻辑
}
}
}
[AttributeUsage(AttributeTargets.Method)]
public class SkipActionFilterAttribute : Attribute
{
}
```
在上述代码中,MyActionFilterAttribute 继承了 ActionFilterAttribute,并重写了 OnActionExecuting 方法。在方法中,首先获取 SkipActionFilterAttribute 属性是否存在,如果存在,则跳过该方法的执行,否则执行自定义逻辑。
使用 SkipActionFilterAttribute 属性可以灵活控制方法的执行,方便开发者根据实际情况进行自定义处理。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)