如何使用传统的 ajax 将输入文件类型传递给 ASP.NET Core 3.1 MVC?
How to pass the input file type to ASP.NET Core 3.1 MVC using ajax with traditional?
如何使用 ajax 将输入文件类型传递给 ASP.NET Core 3.1 MVC?
const _f = JSON.stringify({
data: {
users_pid : xusers_pid,
avatar: {
file: document.getElementById('avatar_logo').files[0]
}
}
});
$.ajax({
type: 'POST',
url: '/User/Update/',
traditional: true,
data: _f,
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function (result) {
showSuccess(result.message);
},
error: function (result) {
showError(result.message);
}
});
[HttpPost]
[Route("/User/Update")]
public JsonResult Update_Data([FromBody] JObject _jo)
{ }
我不知道如何将输入文件类型的值(在我的例子中是 avatar_logo)传递给 ASP.NET Core 3.1 MVC?
如果您想使用 ajax 将文件传递给操作,您可以尝试使用 FormData
。这是一个有效的演示:
型号:
public class FileModel{
public string users_pid { get; set; }
public Avatar avatar { get; set; }
}
public class Avatar {
public IFormFile file { get; set; }
}
查看:
<input id="theFile" type="file" />
<input id="xusers_pid" />
<button onclick="PostFile()">
submit
</button>
js:
function PostFile() {
var formData = new FormData();
formData.append('avatar.file', $('#theFile').get(0).files[0]);
formData.append('users_pid', $("#xusers_pid").val());
$.ajax({
type: "POST",
url: "/User/Update/",
data: formData,
processData: false,
contentType: false,
success: function (data) {
}
});
}
动作:
[HttpPost]
[Route("/User/Update")]
public JsonResult Update_Data(FileModel fileModel)
{
return new JsonResult("s");
}
结果:
如何使用 ajax 将输入文件类型传递给 ASP.NET Core 3.1 MVC?
const _f = JSON.stringify({
data: {
users_pid : xusers_pid,
avatar: {
file: document.getElementById('avatar_logo').files[0]
}
}
});
$.ajax({
type: 'POST',
url: '/User/Update/',
traditional: true,
data: _f,
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function (result) {
showSuccess(result.message);
},
error: function (result) {
showError(result.message);
}
});
[HttpPost]
[Route("/User/Update")]
public JsonResult Update_Data([FromBody] JObject _jo)
{ }
我不知道如何将输入文件类型的值(在我的例子中是 avatar_logo)传递给 ASP.NET Core 3.1 MVC?
如果您想使用 ajax 将文件传递给操作,您可以尝试使用 FormData
。这是一个有效的演示:
型号:
public class FileModel{
public string users_pid { get; set; }
public Avatar avatar { get; set; }
}
public class Avatar {
public IFormFile file { get; set; }
}
查看:
<input id="theFile" type="file" />
<input id="xusers_pid" />
<button onclick="PostFile()">
submit
</button>
js:
function PostFile() {
var formData = new FormData();
formData.append('avatar.file', $('#theFile').get(0).files[0]);
formData.append('users_pid', $("#xusers_pid").val());
$.ajax({
type: "POST",
url: "/User/Update/",
data: formData,
processData: false,
contentType: false,
success: function (data) {
}
});
}
动作:
[HttpPost]
[Route("/User/Update")]
public JsonResult Update_Data(FileModel fileModel)
{
return new JsonResult("s");
}
结果: