0
我想上传一个图像在asp.net。mvc使用FormData为我的数据库中的特定项目。为此,我需要与图像一起发送数据库中项目的ID以链接图像。FormData在asp.net。mvc文件上传和其他数据比文件
我需要使用FormData,因为我不需要刷新页面。所以我使用jQuery与图像的Ajax。
我使用formdata.append添加了图像的ID,但是我在服务器中得到一个错误,它告诉我在执行ajax请求时调用的方法的id参数不可为空,因此它不能被映射。它应该映射到我前面提到的数据库中的项目的ID。
但我在表单数据中添加了该项目的ID。
这是我的javascript代码:
var formData = new FormData();
var totalFiles = document.getElementById("inputImage").files.length;
formData.append("categoryId", response.data.toString());
for (var i = 0; i < totalFiles; i++) {
var file = document.getElementById("inputImage").files[i];
formData.append("categoryImage", file);
}
$.ajax("@Url.Action("SaveCategoryImage", "Categories")",
{
type: "POST",
dataType: "JSON",
data: formData,
contentType: false,
processData: false,
headers: { __RequestVerificationToken: $('input[name=__RequestVerificationToken]').val() }
});
而且这是在控制器的方法应该被调用:
public async Task<ActionResult> SaveCategoryImage(long cateogoryId, HttpPostedFileBase image)
{
return new JsonNetResult(new BasicActionResultViewModel {IsSuccessful = true});
}
那么,为什么不的ASP.NET MVC映射ID我发送表单数据到控制器的方法中的id?
'response.data.toString()'的值是什么? –
而且文件不会被绑定 - 参数需要是IEnumerable categoryImage' –