当前位置: 代码迷 >> 综合 >> MVC中使用异步方法async await
  详细解决方案

MVC中使用异步方法async await

热度:74   发布时间:2024-01-11 22:00:53.0

关于在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调用 异步调用需采用异步控制器actionTask<string> value = _SysAuthAppService.ApiGetButtons(pid, userInfo.userid);return Content(value.Result);}

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

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

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

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

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

  相关解决方案