如何在jquery文件ulpload成功后从c#MVC控制器获得响应

How to get a response from c# MVC controller after succesful jquery file ulpload

本文关键字:c#MVC 控制器 响应 成功 jquery 文件 ulpload      更新时间:2023-09-26

成功上传文件后,如何从以下jQuery fileuprod获取响应结果以设置警报?

这是脚本:

 $(document).ready(function() {
      $("#fileupload").fileupload({
        dataType: "json",
        url: "/Videos/UploadVideoFile/?isrc=feffwefew",
        autoUpload: true,
        done: function(e, data) {}
      }).on("fileuploadprogressall", function(e, data) {
        var progress;
        progress = parseInt(data.loaded / data.total * 100, 10);
        $(".progress-wrapper  .progress .progress-bar").css("width", progress + "%");
        $(".progress-wrapper  .progress .progress-bar").attr("aria-valuenow", progress);
        if (data.success === true) {
          return $scope.setAlert(true, 'alert alert-success', 'Success!', "Video file uploaded");
        }
      });

在我的MVC控制器操作中,我在文件上传并保存后返回以下json:return Json(new{success=true});

我可以看到服务器返回的成功=真实响应beign。

然而,我的脚本的这一部分似乎在得到响应之前就已经执行了:

  if (data.success === true) {
              return $scope.setAlert(true, 'alert alert-success', 'Success!', "Video file uploaded");
            }

如何根据MVC控制器发回的响应设置警报

您应该使用fileuploaddone事件。

它将在ajax执行后被触发。

例如:

$(document).ready(function() {
      $("#fileupload").fileupload({
            dataType: "json",
            url: "/Videos/UploadVideoFile/?isrc=feffwefew",
            autoUpload: true
      }).on("fileuploadprogressall", function(e, data) {
            var progress = parseInt(data.loaded / data.total * 100, 10);
            $(".progress-wrapper  .progress .progress-bar").css("width", progress + "%");
            $(".progress-wrapper  .progress .progress-bar").attr("aria-valuenow", progress);
      }).on("fileuploaddone", function(e, data){
            if (data.success === true) {
               return $scope.setAlert(true, 'alert alert-success', 'Success!', "Video file uploaded");
            }
      });

jQuery文件上传回调选项