0

我在使用 AJAX 将多个参数发布到我的控制器时遇到了一些问题。我想将模型列表和按钮名称(字符串)传递给我的控制器。

jQuery:

function PostForm(buttonname) {

    $.ajax({
        url: "/ControllerName/ViewName",
        type: "POST",
        dataType: "application/JSON",
        data: 
        JSON.stringify({ 
           listOfObjects = $('#form').serialize(),
           button : buttonname
        })
    });
};

部分观点:

<input name="buttonname" value="Name" onClick="PostForm('Name')" />

控制器:

[HttpPost]
public ActionResult ViewName(List<MyObject> listOfObjects ,string button)
{
//Obj should now contain the list of objects and button name
}

单击按钮时,我得到按钮名称的值,但列表对象的计数为 0。

如何将具有不同数据类型的多个参数传递给 MVC 方法?

非常感谢您的想法和建议!谢谢!

4

4 回答 4

4

我得到了解决方案。

function PostForm(buttonname) {

var data = $('#form').serialize();
var finaldata = data + "&buttonclicked="+buttonname;

$.ajax({
    url: "/ControllerName/ViewName",
    type: "POST",
    data: finaldata ,
    success: success function(){},
    error : error function(){}
    });
};

部分观点:

<input name="buttonname" value="Name" onClick="PostForm('Name')" />

控制器:

[HttpPost]

public ActionResult ViewName(List<MyObject> listOfObjects ,string buttonclicked)
{
//Obj should now contain the list of objects and button name
}

问题是我在控制器中使用相同的名称作为按钮名称和 POST 方法的输入参数。这就是为什么我要获取所有按钮名称的列表。现在它的工作..

谢谢您的帮助!!!

于 2013-06-19T11:11:57.357 回答
0

功能 PostForm(按钮名称){

$.ajax({
    url: "/ControllerName/ViewName",
    type: "POST",
    dataType: "application/JSON",
    data: JSON.stringify($('#form').serialize())
});

};

[HttpPost]
public ActionResult ViewName(FormCollection formCollection)
{
     // use formCollection["yourcontrol"] to get your post value
}
于 2013-06-18T07:44:03.200 回答
0

试试这个:

看法:

function PostForm(buttonname) {

    $.ajax({
        url: "/ControllerName/ViewName",
        type: "POST",
        dataType: "application/JSON",
        data: { listOfObjects: data: $('#Form').serilize(), button: buttonname },
        JSON.stringify({ 
           listOfObjects = $('#form').serialize(),
           button : buttonname
        })
    });
};

控制器:

[HttpPost]
public ActionResult ViewName(MyObject[] listOfObjects ,string button)
{

}
于 2013-06-18T07:49:24.637 回答
0

form.serialize() 单独工作。使用其他数据,它不起作用。删除dataType并尝试这样:

data: $('#Form').serilize() + "&button=" + buttonname

希望能帮助到你。

于 2013-06-18T07:59:03.133 回答