1
考虑下面的客户端代码片段:如何正确模型子对象到ASP.NET MVC视图模型绑定JSON?
var vm = {
Input : "Label: Value",
Rules : [
{ Name : "RemoveString",
Params : [
"Label: "
]
}
]
};
$.post("/API/ApplyRule", vm, function(data) { });
而在服务器端以下视图模型:
[Serializable]
public class ApplyRuleRequestViewModel
{
public string Input { get; set; }
public List<RuleViewModel> Rules { get; set; }
}
[Serializable]
public class RuleViewModel
{
public string Name { get; set; }
public List<string> Params { get; set; }
}
而下面的控制器代码:
public class APIController : Controller
{
[HttpPost]
public ActionResult ApplyRule(ApplyRuleRequestViewModel model)
{
//Problem here... model is not fully deserialized into the ViewModel object.
return View();
}
}
我有一个问题试图序列化客户端ViewModel的规则部分。当在上面的// Problem ...上方的控制器行上调试代码时,我发现顶级对象属性产生了它,而不是子对象。所以,我得到的是这样的:
var vm = new ApplyRuleRequestViewModel {
Input = "Label: Value",
Rules = new List<RuleViewModel> {
new RuleViewModel { Name = null, Parameters = null }
}
}
我期待这样的:
var vm = new ApplyRuleRequestViewModel {
Input = "Label: Value",
Rules = new List<RuleViewModel> {
new RuleViewModel {
Name = "RemoveString",
Parameters = new List<string> { "Label: " }
}
}
}
我在做什么错在这里? 为什么它没有正确地绑定规则数组?
你需要创建正确绑定这个自己的自定义模型绑定?如果是这样,怎么样?
好吧会尝试... –
谢谢,那工作:) –