public async override void OnActionExecuting(ActionExecutingContext context)
{
//测试耗时方法
await Task.Delay(100);
string path = context.HttpContext.Request.Path.ToUriComponent();
if (path== "/Home/About")
context.Result = new ContentResult()
{ Content = "1111" };
base.OnActionExecuting(context);
}
为什么加了 await 即使条件满足了 也没办法 拦击 继续往下走
f (path== "/Home/About")
context.Result = new ContentResult()
{ Content = "1111" };
去掉 await 就正常了
使用async,应该override的是 OnActionExecutionAsync 方法
试试
public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { await Task.Delay(100); await base.OnActionExecutionAsync(context, next); }
await 是异步执行的方法 就是这个东西还没有执行完就可以返回值, 知道计算完成再进行下一操作