1
私のWebアプリケーションでは、動的に生成されたフォームを使用して、JSONオブジェクトを作成してアクションに戻すようにしています。ここに見られるように:私のアクションで深いJSONオブジェクトをアクションに送信するにはどうすればよいですか?
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);
}
を、デバッグは、私はmodel.Validatorsが空であることがわかりながら:ここ
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult PutValidationRules(ConfigItem model)
{
// model.Validators is empty
return Json(true);
}
は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);
}
}
があります私のJSONリクエスト用にConfigItem.Validatorsを構築するために必要なことは何ですか?
カスタムバインダーを書き込む代わりに、自分のフォームに組み込みバインダーを対応させました。 – JMP
もちろん、それは常に選択肢ですが、属性の名前を変更することができます。その後、HTMLスライシングでも同様の変更を行う必要があります。 –