jquery ajax调用asp.net上的多个参数
Posted
技术标签:
【中文标题】jquery ajax调用asp.net上的多个参数【英文标题】:Multiple parameters on jquery ajax call asp.net 【发布时间】:2017-12-13 07:28:17 【问题描述】:我正在尝试在 ajax 调用中传递两个参数。我已经尝试了 StakeOverflow 上建议的几种方法,但都没有奏效。这是我在控制器上的方法签名:
[HttpPost]
public ActionResult UploadFile(HttpPostedFileBase[] files, string[] usersToShare)
这是我的功能:
function uploadFile()
var formData = new FormData();
var totalFiles = document.getElementById("files").files.length;
for (var i = 0; i < totalFiles; i++)
var file = document.getElementById("files").files[i];
formData.append("files", file);
//get the selected usernames (email) to share the file
var selectedUsers = [];
$("#costumerUsersListSelect :selected").each(function ()
selectedUsers.push($(this).val());
);
$.ajax(
type: 'post',
url: '/ManageFiles/UploadFile',
data: "files=" + formData + "usersToShare=" + selectedUsers,
dataType: 'json',
contentType: false,
processData: false,
success: function (data)
,
error: function (error)
);
所以我想将 formData 和 selectedUsers 传递给控制器。如果我只传递 formData (Data: formData) 一切正常,但我也需要传递 selectedUsers。
这是我已经尝试过但没有成功的方法:
data: JSON.stringify( files: formData, usersToShare: selectedUsers ),
data: files: formData, usersToShare: JSON.stringify(selectedUsers),
data: "files=" + formData + "&usersToShare=" + selectedUsers,
data: "files=" + formData + "usersToShare=" + selectedUsers,
我不确定这是否是语法问题。
提前感谢您的帮助。
【问题讨论】:
在你的代码后面进入模型文件夹创建一个对象来请求并使用它 【参考方案1】:代替:
data: "files=" + formData + "usersToShare=" + selectedUsers,
在formData
中附加selectedUsers
并仅将formData
发送到服务器,例如:
data: formData,
然后再试一次。
【讨论】:
【参考方案2】:您需要为附加到 formData 的每个值使用不同的键,然后以相同的方式附加文件和用户
function uploadFile()
var formData = new FormData();
var allFiles = $("#files").get(0).files;
for (var i = 0; i < allFiles.length; i++)
formData.append("files_" + i, allFiles[i]);
$("#costumerUsersListSelect :selected").each(function(_,i)
formData.append('user_' + i, this.value);
);
$.ajax(
type: 'post',
url: '/ManageFiles/UploadFile',
data: formData,
dataType: 'json',
contentType: false,
processData: false,
success: function(data) ,
error: function(error)
);
【讨论】:
谢谢,你救了我!【参考方案3】:在你的 ajax 中:
data: JSON.stringify(obj);
在您的 ajax 语句之前,定义您的参数,例如:
var obj = files: formData , usersToShare: selectedUsers ;
【讨论】:
以上是关于jquery ajax调用asp.net上的多个参数的主要内容,如果未能解决你的问题,请参考以下文章
使用 JQuery $.AJAX 调用调用 ASP.NET 函数
如何使用 jQuery 和 ASP.NET MVC 从 AJAX 调用返回错误消息?