Я уже попробовал все, что знаю, но все еще не могу получить проверенные значения в моем чекбоксе. У меня есть вложенное частичное представление, которое отображает некоторые данные о клиенте и позволяет ему выполнить некоторую вставку. Ничего сложного. Тем не менее, существует динамический список контрактов, который создается для некоторых клиентов. Это мой чекбокс, динамический список.
Хотя я могу получить полные значения формы, я не могу получить какие-либо контрольные значения из своих флажков.
Вот мой код:
ViewModel
public List<TITAContratos> Contratos { get; set; }
public class TITAContratos
{
public string NumContrato { get; set; }
public bool Checked { get; set; }
}
ВИД
<div style="position: static; float: left;" id="debPropContratos">
<span>Contratos do Cliente:</span>
@Html.EditorFor(item => item.Contratos)
РЕДАКТОР
@model MVCGestaoWeb.Models.ViewModels.TITAContratos
<p>
@Html.HiddenFor(x => x.NumContrato)
@Html.CheckBoxFor(x => x.Checked )
@Html.LabelFor(x => x.Checked , Model.NumContrato)
<br />
</p>
SCRIPT
$("#btnCadAcordo").click(function () {
var urlSave = '@Url.Action("DebPropostas")';
var taVM = $("#debPropForm").serializeObject();
$.ajax({
type: "POST",
url: urlSave,
//Com isso ele permite a passagem de objetos para o Controller
data: JSON.stringify(taVM),
datatype: "JSON",
contentType: "application/json; charset=utf-8",
success: function (returndata) {
$("#containerDebProp").html(returndata);
}
});
return true;
});
$.fn.serializeObject = function () {
var o = {};
var a = this.serializeArray();
$.each(a, function () {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
EDIT
Просто чтобы указать на проблему: я не могу получить ни одного флажка, отмеченного значением. Даже при том, что я могу получить скрытые значения своих флажков, я не могу получить, какие флажки были отмечены.