MVC中使用异步方法async await

18 篇文章 1 订阅

关于在MVC中使用异步方法async await通过这两个关键字来实现

/// <summary>
        /// 调用webapi获取按钮权限信息
        /// </summary>
        /// <param name="spid"></param>
        /// <param name="userid"></param>
        /// <returns></returns>
        public async Task<string> ApiGetButtons(string spid,string userid)
        {
            Dictionary<string, string> dic = new Dictionary<string, string>();
            //dic.Add("sysid", Common.sysid);
            dic.Add("userid", userid);
            dic.Add("spid", spid);
            var result = await Task.Run(() => MyUrlOp.GetByToken(Common.url + "/Authority/GetButtons", dic));
            return result;
        }

此方法我直接在控制器中调用方法

public ContentResult GetButton(string pid)
        {
            //通过webapi调用 异步调用需采用异步控制器action
            Task<string> value = _SysAuthAppService.ApiGetButtons(pid, userInfo.userid);
            return Content(value.Result);
        }

这样是不行的,但是把此方法直接通过控制台程序来调是可以取得值的

后来想到可能需要通过异步控制器的方法来,方法改为如下

public async Task<ContentResult> GetButton(string pid)
        {
            //通过webapi调用 异步调用需采用异步控制器action
            string value = await _SysAuthAppService.ApiGetButtons(pid, userInfo.userid);
            return Content(value);
        }

采用异步控制器的方法就能获取值了

记录一下此知识点,花了我很长时间啊,搞过以后就清楚了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值