如何将 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") {
}
}
});
}