使用asp.net mvc从ajax请求中获取数据
我希望使用请求ajax将所有数据放入一个对象中 这些数据通过一个函数进入我的控制器。 在我的数据标题中,我有以下信息: 我创建了4个对象,但所有数据(克、乳液和其他)都等于null或零。 但是数据注释和其他数据没关系,这是有效的 谢谢你的帮助 我的请求:使用asp.net mvc从ajax请求中获取数据,ajax,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-2,asp.net-ajax,Ajax,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 2,Asp.net Ajax,我希望使用请求ajax将所有数据放入一个对象中 这些数据通过一个函数进入我的控制器。 在我的数据标题中,我有以下信息: 我创建了4个对象,但所有数据(克、乳液和其他)都等于null或零。 但是数据注释和其他数据没关系,这是有效的 谢谢你的帮助 我的请求: var params={}; var allStep21 ={allData..} $.extend(params,allStep21); $.ajax({ type: "POST", url: "Request",
var params={};
var allStep21 ={allData..}
$.extend(params,allStep21);
$.ajax({
type: "POST",
url: "Request",
data: params,
});
在html标题中:
allPly[0][Gramme]:10
allPly[0][Toto]:White
allPly[0][Test]:None
allPly[0][Lotion]:1
allPly[1][Grammage]:11
allPly[1][Toto]:White
allPly[1][Test]:Fine
allPly[1][Lotion]:0
OtherData : 585
Comment: all it's ok
在我的控制器中:
[HttpPost]
public ActionResult Request(AllStep21 allStep21)
{
}
在我的模型中:
public class AllStep21
{
public String OtherData { get; set; }
public String Comment { get; set; }
public List<allPly> allPly { get; set; }
}
public class allPly
{
public int Gramme { get; set; }
public String Toto { get; set; }
public String Test { get; set; }
public int Lotion { get; set; }
}
公共类所有步骤21
{
公共字符串OtherData{get;set;}
公共字符串注释{get;set;}
公共列表allPly{get;set;}
}
公共类
{
公共整数文法{get;set;}
公共字符串Toto{get;set;}
公共字符串测试{get;set;}
公共int-Lotion{get;set;}
}
您需要的是实现您自己的模型绑定器。请查看以下链接:
我希望它能有所帮助。您可以使用JSON请求,它允许您向控制器操作发送任意复杂对象:
var params = {
allStep21: {
comment: 'some comment',
otherData: 'some other data',
allPly: [
{ toto: 'toto 1', test: 'test 1', lotion: 1, gramme: 1 },
{ toto: 'toto 2', test: 'test 2', lotion: 2, gramme: 2 }
]
}
};
$.ajax({
url: 'Request',
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(params),
success: function(result) {
alert('successs');
}
});
这里显示的
JSON.stringify
方法是所有现代浏览器的内置方法。但是,如果您需要支持传统浏览器,则需要包含脚本。如果您指定内容类型为json(contentType:“application/json”)并使用数据:json.stringify(params)?-1,则他不需要实现任何自定义绑定器。对于框架支持的开箱即用的东西来说,工作量太大了。首先,感谢您的帮助。我有一个错误,当我输入“contentType:'application/json;charset=utf-8”并发送请求时,我有一个错误:已经添加了一个具有相同密钥的项…?您在哪里有这个错误?你在服务器上做什么?我怀疑您的问题与AJAX请求中发送数据的方式无关。这应该可以正常工作,并且应该正确填充allStep21
操作参数。下一步处理这些数据是完全不同的。当我点击一个按钮时,参数是create and request Ajax never send,我有这个错误。我在我的控制器中设置了一个函数的断点,但我从未出现过…如果我删除了line contentType,我在发送请求时不会出错…您的模型是否与您在问题中所显示的完全相同?如果是这样的话,这应该是可行的。您在哪里看到这个错误?在FireBug?中,我看到您已经更新了问题和allPly
模型。grame
属性是一个简单的整数,而不是整数数组。这就是它不起作用的原因。我更新了我的答案,以反映这一变化。