使用异步任务返回服务中的HttpPostedFile

时间:2016-06-03 02:45:24

标签: c# asp.net-mvc async-await

我有这样的异步任务方法:

 public async Task<Slider> EditSlider(HttpPostedFileBase file)
    {

            if (file != null)
            {
                var pic = Path.GetFileName(file.FileName);
                var path = Path.Combine(HttpContext.Current.Server.MapPath("~/Content/images/slider"), pic);
                file.SaveAs(path);
            }
            return file;
    }

但在return file行中我得到了

  

无法将表达式HttpPostedFileBase转换为异步方法返回类型

我该如何归还? 提前谢谢!

2 个答案:

答案 0 :(得分:2)

首先,fileHttpPostedFileBase,而不是Slider。如果有的话,那就是Task<HttpPostedFileBase>

但是,您的代码没有任何异步,因此您只需返回HttpPostedFileBase而不是Task<HttpPostedFileBase>

public HttpPostedFileBase EditSlider(HttpPostedFileBase file)
{
    if (file != null)
    {
        var pic = Path.GetFileName(file.FileName);
        var path = Path.Combine(HttpContext.Current.Server.MapPath("~/Content/images/slider"), pic);
        file.SaveAs(path);
    }
    return file;
}

你的方法也有一个误导性的名字 - 这里没有任何东西正在编辑..它只是保存一个上传的文件..但那是另一个时间

答案 1 :(得分:0)

您应该将方法签名更改为

public async Task<HttpPostedFileBase> EditSlider(HttpPostedFileBase file)
    {
       //your code here
    }

致电,

var data = await EditSlider(myfile);