我已經試過了解我所知道的所有信息,但仍然無法獲得我的checkboxlist檢查值。我有一個嵌套的局部視圖,呈現一些客戶端信息數據,並允許他做一些插入。沒什麼複雜。但是,有一些爲某類客戶生成的動態合同列表。這是我的checkboxlist,動態列表。 儘管我可以獲取整個表單值,但我無法從我的複選框中獲取任何檢查值。MVC 3 ajax發佈沒有獲得檢查值的複選框
Here's我的代碼:
視圖模型
public List<TITAContratos> Contratos { get; set; }
public class TITAContratos
{
public string NumContrato { get; set; }
public bool Checked { get; set; }
}
VIEW
<div style="position: static; float: left;" id="debPropContratos">
<span>Contratos do Cliente:</span>
@Html.EditorFor(item => item.Contratos)
EDITOR
@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;
};
編輯
只是點了問題:我不能得到任何選中複選框值。即使我可以讓我的複選框隱藏價值,我無法得到哪些複選框被檢查。
只是在這裏肯定 - 你的問題是在你的控制器或獲取您的複選框的價值? – 2011-06-17 01:03:05
@Adam,問題出在我的控制器上。不管我做什麼,我的複選框總是假的,即使是我檢查過的。我需要知道檢查了哪些複選框。 – AdrianoRR 2011-06-17 11:58:47