回调函数的结果异步返回模型视图

时间:2017-11-21 06:00:32

标签: c# asp.net .net asp.net-mvc model-view-controller

我的模型中有一个回调函数。即无效方法。 如何将结果传递给视图。

我的问题是在将文件上传到亚马逊s3时,它正在返回进度值。我需要在视野中获得这个价值。

我的代码如下

public bool sendMyFileToS3(EmployeeModel e, string bucketName, string subDirectoryInBucket)
        {
            IAmazonS3 client = new AmazonS3Client(RegionEndpoint.USEast2);
            TransferUtility utility = new TransferUtility(client);
            TransferUtilityUploadRequest request = new TransferUtilityUploadRequest();

            if (subDirectoryInBucket == "" || subDirectoryInBucket == null)
            {
                request.BucketName = bucketName; //no subdirectory just bucket name  
            }
            else
            {   // subdirectory and bucket name  
                request.BucketName = bucketName + @"/" + subDirectoryInBucket;
            }
            try
            {
                request.Key = RandomString() + Path.GetExtension(e.File.FileName); //file name up in S3  
                request.InputStream = e.File.InputStream;
                request.CannedACL = S3CannedACL.PublicRead;
                request.UploadProgressEvent += new EventHandler<UploadProgressArgs>(UploadFile_ProgressBar); //call bcak function
                utility.Upload(request);
            }
            catch(AmazonS3Exception)
            {
                throw;
            }
             //commensing the transfer  

            //Generate link with expiry date.
            Amazon.S3.Model.GetPreSignedUrlRequest aa = new Amazon.S3.Model.GetPreSignedUrlRequest();
            aa.BucketName = request.BucketName;
            aa.Key = request.Key;
            aa.Expires = new DateTime().AddDays(2);
            string url = client.GetPreSignedURL(aa);
            url = url.Remove(url.IndexOf('?'));
            return true;  
        }
        public void UploadFile_ProgressBar(object sender, UploadProgressArgs e)
        {
            int pctProgress = (int)(e.TransferredBytes * 100 / e.TotalBytes);
        }

每秒“pctProgress”此参数将替换为新值。当用新值替换时,它应该传递给视图。 这该怎么做。 请任何建议。

0 个答案:

没有答案