0

在我的 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)
4

2 回答 2

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); }
            });
        });
于 2013-04-14T17:07:55.967 回答
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); }
});
于 2013-04-14T06:29:40.287 回答