Asp.net mvc MVC模型绑定器有时不起作用

Asp.net mvc MVC模型绑定器有时不起作用,asp.net-mvc,model-binding,Asp.net Mvc,Model Binding,我有一种非常奇怪的行为。我通过ajax发送一些复杂的对象,并将其字符串化为JSON。 我对模型的类结构与javascript数据的类结构相同,因此应该很容易将其映射到模型。它在大多数情况下都有效,但在某些情况下,THEN子句中的语句不会映射到模型: 从客户端发送的JSON数据: 我在控制器中得到的模型: 有人知道为什么在某些情况下模型绑定器不能工作吗 工作正常的JSON: {“dqsName”:null,“propertyTypes”:[],“dqsTemplateId”:0,“sectio

我有一种非常奇怪的行为。我通过ajax发送一些复杂的对象,并将其字符串化为JSON。 我对模型的类结构与javascript数据的类结构相同,因此应该很容易将其映射到模型。它在大多数情况下都有效,但在某些情况下,THEN子句中的语句不会映射到模型:

从客户端发送的JSON数据:

我在控制器中得到的模型:

有人知道为什么在某些情况下模型绑定器不能工作吗

工作正常的JSON:

{“dqsName”:null,“propertyTypes”:[],“dqsTemplateId”:0,“sections”:[{“SectionType”:2,“ConditionsOrder”:2,“disableAddField”:true,“Conditions”:[{“FieldId”:23,“OperatorId”:131,“SortOrder”:1,“Values”:[{“DqsValueId”:0,“Value”:“12-12-2015”}],“selectedValues”:[null],“SortOrder”:0,“ThenClause”:[{“语句”:[“DqsStatementId”:0,“DqsValue”:“0”,“FieldId”:1,“SortOrder”:0}],“statementSortOrder”:1,“disableAddField”:true},,“ElseClause”:{“Statements”:[{“DqsStatementId”:0,“DqsValue”:0,“FieldId”:1,“SortOrder”:0}],“statementSortOrder”:1,“disableAddField”:true}],“sectionSortOrder”:1,“disableAddElse”:true,“disableAddElse”:true,“DisableAddsTandle”:true,“baseScore”:0}

不起作用的JSON:

{“dqsName”:null,“propertyTypes”:[],“dqsTemplateId”:0,“sections”:[{“SectionType”:2,“ConditionsOrder”:1,“disableAddField”:true,“Conditions”:[{“FieldId”:8,“OperatorId”:135,“SortOrder”:0,“Values”:[{“DqsValueId”:0,“DqsConditionId”:0,“Value”:“12-12-2015”;“DqsConditionId”:0,“Value”:“12-13-2015”},“selectedValues”:[null,null],”SortOrder:1,“ThenClause”:{“语句”:[{“DqsStatementId”:0,“DqsValue”:0,“FieldId”:1,“SortOrder”:0}],“statementSortOrder”:1,“disableAddField”:true}”,ElseClause:{“语句”:[{“DQStatementId”:0,“FieldId”:1,“SortOrder”:0}],“statementSortOrder”:1,“disableAddField”:true}],“sectionSortOrder”:2,“disableAddElse”:true,”DISABALEDSTANDALONE“:true,“baseScore”:0}


我观察到的其他一些情况是,如果对于不起作用的JSON,我有一个null ElseClause,那么ThenClause被正确绑定。但是如果我在ElseClause中有一些数据,那么ThenClause将不会被正确绑定(语句将为null).

你需要比较一个有效和一个无效的JSON之间的差异。如果没有这里的模型,我们真的帮不上忙。我将发布一个JSON有效和无效的示例,我找不到任何显著差异。我更新了描述,我唯一能想到的是ElseClause和ThenClause都有一个语句数组,模型绑定器不知怎么地不知道如何处理它们,但在某些情况下是这样的……我对不起作用的语句感到困惑,这:
“DqsValue”:0
与起作用的语句不同。起作用的语句的值用引号括起来:
“DqsValue”:“0”“
您需要比较一个有效的方法和一个无效的方法之间的差异。如果没有这里的模型,我们真的帮不上忙。我将发布一个JSON有效和无效的示例,我找不到任何显著差异。我更新了描述,我唯一能想到的是ElseClause和ThenClause都有一个语句数组,而模型绑定器不知怎的不知道如何处理它们,但在某些情况下,它确实。。。我对不起作用的那个感到困惑,这个:
“DqsValue”:0
与起作用的那个不同。起作用的值用引号括起来:
“DqsValue”:“0”