我想绑定这个json:
{
"DataPeriodId": 1,
"MarketerId": 2,
"MarketerTitle": "mehrdad",
"CreditValues": [
{
"Title": "twelve",
"CreditTypeId": 1,
"Value": 2500000,
"CreditId": 3,
"HasMax": true
},
{
"Title": "test",
"CreditTypeId": 2,
"Value": "",
"CreditId": "",
"HasMax": true
},
{
"Title": "pouya",
"CreditTypeId": 3,
"Value": 1564564,
"CreditId": 7,
"HasMax": false
},
{
"Title": "jafar",
"CreditTypeId": 4,
"Value": 0,
"CreditId": 9,
"HasMax": false
},
{
"Title": "saeed",
"CreditTypeId": 5,
"Value": 0,
"CreditId": 10,
"HasMax": false
}
]
}
对此对象:
public class MarketerCredit
{
public int DataPeriodId;
public int MarketerId;
public string MarketerTitle;
public List<CreditValue> CreditValues;
}
public class CreditValue
{
public int CreditId;
public int CreditTypeId;
public decimal? Value;
public bool HasMax;
}
在mvc.net。
但是当将json传递给action时,所有成员都为null。 这是我的行动:
public void EditMarketerCredit(MarketerCredit marketerCredit)
{
}
所以我写这个:
public void EditMarketerCredit(List<CreditValue> CreditValues,int DataPeriodId,int MarketerId,string MarketerTitle)
当成员分开时,一切都还可以。 如何将json绑定到模型?
答案 0 :(得分:1)
根据你的json,你需要一个封装MarketerCredit
public class RootObject
{
public MarketerCredit MarketerCredit { set; get; }
}
BTW:你的json包含一行"CreditId": "",
,所以CreditId
的类型应该是 string
答案 1 :(得分:1)
您需要实现自己的自定义模型绑定器,然后在应用程序启动时注册它。这是一个walkthrough,解释了如何实现这一目标。
但是,如果你想避免自定义MVC管道,你需要创建一个新的类/模型来公开类型为marketerCredit
的{{1}}属性,你可以随意命名这个模型
MarketerCredit
然后像这样修改你的动作方法......
public class MyModel
{
public MarketerCredit marketerCredit{get;set;}
}
答案 2 :(得分:0)
您应该为属性添加get和set:
public int DataPeriodId{get;set}
你刚刚添加了写
public int DataPeriodId
Mvc无法绑定。