Я отправляю сериализованный объект Jquery Json на мой контроллер, но не все данные передаются. Один из членов является сложным типом, который также сериализован Json. Это тот, который не доходит до контроллера.
Вот класс, который я передаю своему контроллеру через пост Ajax. Обратите внимание на сложный тип, RoutingRuleModel.
SourceCodeModel.cs:
[Serializable]
public class SourceCodeModel
{
public string SourceCode { get; set; }
public bool IsActive { get; set; }
public string LastChangedBy { get; set; }
public string LocationCode { get; set; }
public string Vendor { get; set; }
public RoutingRuleModel RuleModel { get; set; }
}
RoutingRuleModel.cs:
[Serializable]
public class RoutingRuleModel
{
public string AdaStuInfoSysId { get; set; }
public string AdaInitials{ get; set; }
public string LocationCode { get; set; }
public string Vendor { get; set; }
public string RuleName { get; set; }
public string RuleStatus { get; set; }
public int RuleId { get; set; }
}
Вот как я строю модель в JavaScript:
getSourceCodeModel = function (sourceCode, isActive, lastChangedBy, locationCode, ruleModel) {
// Retrieves a SourceCodeModel object that can be JSON-serialized
return ({
SourceCode: sourceCode,
IsActive: isActive,
LastChangedBy: lastChangedBy,
LocationCode: locationCode,
Vendor: ruleModel.Vendor,
RuleModel: [{ AdaStuInfoSysId: ruleModel.AdaStuInfoSysId, AdaInitials: ruleModel.AdaInitials, LocationCode: ruleModel.locationCode,
Vendor: ruleModel.Vendor, RuleName: ruleModel.RuleName, RuleStatus: ruleModel.RuleStatus, RuleId: ruleModel.RuleId}]
});
};
Вот мой вызов JQuery Ajax:
$.ajax({
type: "POST",
url: "/LeadRoutingConsole/VendorLeadRouting/PostSourceCode",
data: sourceCodeModel,
datatype: "json",
success: Commit_success,
error: Commit_error,
complete: function (jqXHR) { }
});
Вот метод действия моего контроллера:
[HttpPost]
public JsonResult PostSourceCode(SourceCodeModel model)
{
// perform the save op
var viewModel = new SourceCodesViewModel();
viewModel.PostSourceCode(model);
return Json(model);
}
Проблема: SourceCodeModel содержит правильные значения, КРОМЕ для его сложного члена: RuleModel, который возвращается как RoutingRuleModel со значениями по умолчанию (null или 0).