我试图将带有ajax的两个列的类发送到mvc控制器。
MVC控制器:
[HttpPost]
public JsonResult AfficherDetailsFacture(AfficheDetails afficheDetailsFacture)
{
// do some stuff
}
控制器参数的C#类:
[Serializable]
public class AfficheDetails
{
public List<long> firstList{ get; set; }
public List<long> secondList{ get; set; }
public string numFacture{ get; set; }
}
JS:
var AfficheDetails = {
firstList: [31025,6954],
secondList: [31542,31211,23214,23211],
numFacture: "Facture 001"
};
$.ajax({
type: "POST",
async: false,
url: urls.urlAfficherDetailsFacture,
contentType: 'application/json',
data: JSON.stringify(AfficheDetails),
success: function (oResultat) {
//
}
这不能正常工作。
如果firstlist的元素少于secondList,则第一个List在MVC控制器中为空。
我已经工作了几个小时才发现这个“规则”。如果firstList具有更多元素或相同的ammount,那么它正在工作!
它是MVC绑定错误吗?
答案 0 :(得分:1)
您也可以在Controller上使用
public JsonResult AfficherDetailsFacture(string jsonData)
{
var jss = new JavaScriptSerializer();
var data = jss.Deserialize<AfficheDetails>(jsonData);
// do some stuff
}
其中数据现在包含类AfficheDetails
和Jquery
编辑 这一行
$.ajax({
type: "POST",
async: false,
url: urls.urlAfficherDetailsFacture,
// contentType: 'application/json', comment the type
data: { jsonData : JSON.stringify(AfficheDetails) },
success: function (oResultat) {
//
}