在我的c#mvc4应用程序中,我有三个对象,我希望使用带有Jquery的AJAX帖子传递给ActionResult。对象是两个字符串和一个表单集合。我只有传递表单集合没有问题,但似乎无法通过所有三个语法正确的语法。这是我尝试过的:
$(document).ready(function () {
$('#ChangeName').click(function (e) {
var tdata = $('#form1').serialize();
var origname = $('#NameDiv').find('input[name="myName"]').first().val();
var newname = $('#NameDiv').find('input[name="updatedName"]').first().val();
$.ajax({
type: "POST",
data: {tdata + origname + newname},
url: "Home/ChangeName",
success: function (result) { success(result); }
});
});
我在data:
部分中的每个变量名后面都有逗号,有或没有括号。我怎么能通过这三个?成功时,两个字符串值在调试时都已正确填充,但值不会出现在ActionResult中,而是显示为null。
我也尝试将此数据置于数据下方:contentType: "application/x-www-form-urlencoded",
这也是我的ActionResult的开始:
public ActionResult ChangeName(string Name, string updatedName, FormCollection mCollection)
答案 0 :(得分:3)
你可以尝试:
$(document).ready(function () {
$('#ChangeName').click(function (e) {
var tdata = $('#form1').serialize();
var origname = $('#NameDiv').find('input[name="myName"]').first().val();
var newname = $('#NameDiv').find('input[name="updatedName"]').first().val();
$.ajax({
type: "POST",
data: {
mCollection: tdata,
Name: origname,
updatedName: newname
},
url: "Home/ChangeName",
success: function (result) { success(result); }
});
});
答案 1 :(得分:0)
我认为问题是你如何将origname和newname放在ajax请求中。 试试这个:
var origname = $('#NameDiv').find('input[name="myName"]').first().val();
var newname = $('#NameDiv').find('input[name="updatedName"]').first().val();
$.ajax({
url: 'Home/ChangeName',
type: "POST",
data: $("#form1").serialize() + "&origname =" + origname + "&newname =" + newname,
success: function (result) { success(result); }
});