JSON没有';无法通过MVC进行解析
本文关键字:MVC 没有 JSON | 更新日期: 2023-09-27 18:20:16
我有以下C#:
型号:
namespace WebInventory.Models
{
[DataContract]
public class PostbackList
{
[DataContract]
public class Field
{
public int ID;
public string Name;
public int DataTypeID;
public bool Checked;
}
[DataMember]
public int TypeID;
[DataMember]
public IList<Field> Fields;
[DataMember]
public IList<IList<string>> Values;
#region Non DataMember
public IList<int> UsedFieldsID;
#endregion
}
}
控制器:
public class ListController : JsonController
{
[HttpPost]
public ActionResult GetList(PostbackList data)
{
<...>
}
}
我发送以下JSon对象:
{"TypeID":16,"Fields":[{"ID":42,"Name":"","DataTypeID":0,"Checked":true},{"ID":43,"Name":"","DataTypeID":0,"Checked":true},{"ID":44,"Name":"","DataTypeID":0,"Checked":true}],"Values":null}
使用:
$.ajax({
url: url
, type: 'POST'
, dataType: 'json'
, contentType: 'application/json; charset=utf-8'
, data: JSON.stringify(parameter)
, xhrFields: {
withCredentials: true
}
})
.done(function (data) {
fillTemplate(data);
});
我在MVC GetList
中设置了一个断点,在那里我看到data
未初始化。我尝试使用数组而不是(I)List,但没有帮助。
我看不出怎么了。
我认为应该使用属性而不是字段。
我最近遇到了同样的问题,模型绑定器没有接收到我的json。
我改成了房地产。
public int ID {get; set;}
将所有字段更改为属性,如下所示。
namespace WebInventory.Models
{
[DataContract]
public class PostbackList
{
[DataContract]
public class Field
{
public int ID {get; set;}
public string Name {get; set;}
public int DataTypeID {get; set;}
public bool Checked {get; set;}
}
[DataMember]
public int TypeID {get; set;}
[DataMember]
public IList<Field> Fields {get; set;}
[DataMember]
public IList<IList<string>> Values {get; set;}
#region Non DataMember
public IList<int> UsedFieldsID {get; set;}
#endregion
}
}