jQuery - 使用 MVC 控制器发布带有图像 ASP.NET 请求



如何将 FormData 发送到控制器?我正在尝试上传图片:

$(".Replybtn").on("click", function() {
  var fileData = new FormData();
  var files = $(".Rfile[data-id=" + RId + "]").get(0).files;
  if (files.length > 0) {
    fileData.append("HelpSectionImages", files[0]);
  }
  $.post('/QJN/Reply/', {
    __RequestVerificationToken: gettoken(),
    TGID: RId,
    SID: UId,
    Com: cmnt
  }, function(data) {
    if (data == "Tagged") {
      // 
    }
  });
});

.HTML

<input type="file" class="Rfile" data-id=@feed.TagId accept = "image/*,video/*">

控制器

   [HttpPost, ValidateAntiForgeryToken, ValidateInput(enableValidation: true)]
    public ActionResult Reply(string TGID, string SID, string Com)
    {
     var file = Request.Files["HelpSectionImages"]; 
      if(file!=null){
       }
     }

您似乎没有发布fileData对象。所以你不会从Request获得任何文件。

试试这个:

$(".Replybtn").on("click", function () {
var fileData = new FormData();
var files = $(".Rfile[data-id=" + RId + "]").get(0).files;  
if (files.length > 0) {
    fileData.append("HelpSectionImages", files[0]); 
}
fileData.append("__RequestVerificationToken", gettoken());
fileData.append("TGID", RId);
fileData.append("SID", UId);
fileData.append("Com", cmnt);
$.ajax({
  url: '/QJN/Reply/',
  data: fileData,
  processData: false,
  contentType: false,// only jQuery 1.6+
  type: 'POST',
  success: function(data){
    if (data == "Tagged") {
    } 
  }
});
}

最新更新