首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用$.ajax将具有不同类型的多个参数传递给MVC方法

使用$.ajax将具有不同类型的多个参数传递给MVC方法
EN

Stack Overflow用户
提问于 2013-06-18 15:38:03
回答 4查看 11.2K关注 0票数 0

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

jQuery:

代码语言:javascript
复制
function PostForm(buttonname) {

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

局部视图:

代码语言:javascript
复制
<input name="buttonname" value="Name" onClick="PostForm('Name')" />

控制器:

代码语言:javascript
复制
[HttpPost]
public ActionResult ViewName(List<MyObject> listOfObjects ,string button)
{
//Obj should now contain the list of objects and button name
}

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

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-19 19:11:57

我找到解决方案了。

代码语言:javascript
复制
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(){}
    });
};

局部视图:

代码语言:javascript
复制
<input name="buttonname" value="Name" onClick="PostForm('Name')" />

控制器:

HttpPost

代码语言:javascript
复制
public ActionResult ViewName(List<MyObject> listOfObjects ,string buttonclicked)
{
//Obj should now contain the list of objects and button name
}

问题是我在controller.Thats中使用相同的名称作为按钮名称和POST方法的输入参数,为什么我会得到所有按钮名称的列表。Neways现在可以工作了..

谢谢你的帮助!

票数 4
EN

Stack Overflow用户

发布于 2013-06-18 15:44:03

函数PostForm(按钮名称){

代码语言:javascript
复制
$.ajax({
    url: "/ControllerName/ViewName",
    type: "POST",
    dataType: "application/JSON",
    data: JSON.stringify($('#form').serialize())
});

};

代码语言:javascript
复制
[HttpPost]
public ActionResult ViewName(FormCollection formCollection)
{
     // use formCollection["yourcontrol"] to get your post value
}
票数 0
EN

Stack Overflow用户

发布于 2013-06-18 15:49:25

试试这个:

查看:

代码语言:javascript
复制
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
        })
    });
};

控制器:

代码语言:javascript
复制
[HttpPost]
public ActionResult ViewName(MyObject[] listOfObjects ,string button)
{

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17163146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档