首页 新闻 会员 周边

.net core OnActionExecuting

0
悬赏园豆:5 [已解决问题] 解决于 2017-05-01 22:53

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    就正常了 

 

 

程序员编程日记的主页 程序员编程日记 | 初学一级 | 园豆:6
提问于:2017-04-21 16:46
< >
分享
最佳答案
1

使用async,应该override的是  OnActionExecutionAsync 方法

收获园豆:5
dudu | 高人七级 |园豆:30994 | 2017-04-21 17:04

试试

public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
    await Task.Delay(100);
    await base.OnActionExecutionAsync(context, next);
}
dudu | 园豆:30994 (高人七级) | 2017-04-21 17:06
其他回答(1)
0

await 是异步执行的方法 就是这个东西还没有执行完就可以返回值, 知道计算完成再进行下一操作

Bluto | 园豆:317 (菜鸟二级) | 2017-04-21 21:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册