Dans mon application Web, j'ai un formulaire généré dynamiquement que j'utilise pour créer un objet JSON pour revenir à une action. Comme on le voit ici:Comment envoyer des objets JSON profonds à une action?
function getConfigItemWithValidators() {
log.info("getConfigItemWithValidators()");
var oConfigItem = {
"Name": $("#txtName").html(),
"InputFileCellIndex": $("#inpFieldIndex").val(),
"Validators": new Array() };
for (var i = 0; true; i++) {
var oHiddenValidatorName = $("[name=hidVld"+i+"]");
var oHiddenValidatorVal = $("[name=txtVld"+i+"]");
if ($("[name=hidVld" + i + "]").length > 0) {
var oValidator = {
"ValidationType": oHiddenValidatorName.val(),
"ValidationValue": oHiddenValidatorVal.val() };
oConfigItem.Validators.push(oValidator);
}
else
break;
}
return oConfigItem
}
function saveConfigItemChanges() {
log.info("saveConfigItemChanges()");
var oConfigItem = getConfigItemWithValidators();
$("#divRulesContainer").hide("normal");
$.getJSON("PutValidationRules", oConfigItem,
saveConfigItemChangesCallback);
}
Dans mon action, alors que le débogage, je remarque que model.Validators est vide:
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult PutValidationRules(ConfigItem model)
{
// model.Validators is empty
return Json(true);
}
Voici le code à ConfigItem:
public class ConfigItem
{
public string Name { get; set; }
public int InputFileCellIndex { get; set; }
private IList<Validator> _validators = new List<Validator>();
public IList<Validator> Validators
{
get
{
return _validators;
}
}
public void AddValidator(Validator aValidator)
{
aValidator.ConfigItem = this;
_validators.Add(aValidator);
}
}
est-il que dois-je faire pour que ConfigItem.Validators soit compilé pour mes requêtes JSON?
Au lieu d'écrire un classeur personnalisé, j'ai fait ma forme pour accueillir le classeur intégré. – JMP
Bien sûr, il est toujours un choix, mais les noms des attributs peuvent être modifiés, puis vous devez faire des changements similaires dans les vues et peut-être même dans le découpage HTML.Il ajoute à mon avis inutile quantité de travail. –