asp.net mvc中的FormData与文件上传和其他非文件的数据
本文关键字:文件 其他 数据 中的 mvc FormData asp net | 更新日期: 2023-09-27 17:49:22
我试图在asp .net mvc中使用FormData为我的数据库中的特定项目上传图像。为此,我需要与图像一起发送数据库中链接图像的项目的id。
我需要使用FormData,因为我需要页面不刷新。所以我使用jquery ajax与图像。
我使用formdata添加了图像的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呢?
结果是我打错了,表单数据中categoryId的键与控制器中方法中的键不同。我还从ajax调用中删除了数据类型。