【发布时间】:2015-09-30 10:02:27
【问题描述】:
我有一些数据和文件应该在同一个AJAX 请求中发布。尝试了一些解决方案,但我总是在控制器中得到null(文件发送良好,当我将Tester 类更改为简单的string 时,它也可以工作)。
我的 JS:
function sendAjaxWithFile (formData, successCallback, errorCallback) {
successCallback = successCallback || function () { };
errorCallback = errorCallback || function () { };
$.ajax({
url: "/Test/Save",
type: "POST",
data: formData,
cache: false,
processData: false,
contentType: false,
success: successCallback,
error: errorCallback
});
}
var data = new FormData();
data.append("tester", { Name: "QWERTY" });
data.append("someFile", file);
$scope.sendAjaxWithFile(data, function (response, textStatus, jqXHR) {
}, function (jqXHR, textStatus, errorThrown) {
});
以及服务器端代码:
[AjaxOnly]
[HttpPost]
[Route("Save")]
public async Task<JsonResult> Save(Tester tester, HttpPostedFileBase someFile)
{
return await Task.FromResult(Json(0));
}
Tester类:
public class Tester
{
public string Name { get; set; }
public DateTime Date { get; set; }
}
【问题讨论】:
-
请提供tester类和相关html
-
这可能无关紧要,但是,尝试
{ "Name": "QWERTY" }=> 在Name周围加上引号 -
在控制器中仍然为空:(
标签: javascript jquery asp.net ajax http-post