Javascript 在ASP.NET MVC中使用ajax将多个对象传递给控制器

Javascript 在ASP.NET MVC中使用ajax将多个对象传递给控制器,javascript,ajax,asp.net-mvc,model-view-controller,post,Javascript,Ajax,Asp.net Mvc,Model View Controller,Post,我从事一个ASP.NETMVC项目。 我必须将两个参数传递给控制器中的操作。第一个是可序列化对象,第二个是整数。 我第一次尝试只传递一个参数,可序列化对象。没有问题,但是当我添加第二个参数时,serializable对象没有传递(空值),但是integer参数传递成功 这是我的动作,看起来像: [HttpPost] public bool MyAction(MySerializableObject myData, int intParameter) {..} 这就是我试

我从事一个ASP.NETMVC项目。 我必须将两个参数传递给控制器中的操作。第一个是可序列化对象,第二个是整数。 我第一次尝试只传递一个参数,可序列化对象。没有问题,但是当我添加第二个参数时,serializable对象没有传递(空值),但是integer参数传递成功

这是我的动作,看起来像:

    [HttpPost]
    public bool MyAction(MySerializableObject myData, int intParameter)
    {..}
这就是我试图传递参数的方式:

 $('#submit-button').click(function () {        
    var formData = $("#MyForm").serialize();
    var posturl = '/MyController/MyAction';
    var retUrl = '/MyCOntroller/SomeWhere';
    ...
    $.post(posturl, { myData: formData, intParameter: '5005' }, function (result) {
        if (result == 'True') {
            location.href = retUrl;
        }
        else {
            alert('failed');
        }
    });
});
有人能解释一下吗?它是如何发生的,如何解决问题


谢谢。

这可能有点长,但您是否尝试过交换参数的顺序(即public bool MyAction(int intParameter,MySerializableObject myData))我询问的原因可能是您的客户端序列化工作不太正常

如果不是的话,最好的办法是查看实际发布到服务器的内容。打开webkit中的firebugs net选项卡或类似选项卡,查看实际返回到服务器的内容。

您可以使用而不是
。序列化

var formData = $('#MyForm').serializeObject();
// add some data to the request that was not present in the form
formData['intParameter'] = 5005;

var posturl = '/MyController/MyAction';
var retUrl = '/MyCOntroller/SomeWhere';
...
$.post(posturl, formData, function (result) {
    if (result == 'True') {
        location.href = retUrl;
    }
    else {
        alert('failed');
    }
});