MVC模型CheckboxFor第一项始终为false

时间:2016-11-18 19:50:36

标签: c# asp.net-mvc

让我稍微澄清标题。

我是一个拥有一系列预告片的模型,而每个集合都有一个预告片列表。 html看起来像这样

for(int i = 0; i <Model.TrailerCollection.Count(); i++)
{
    ... // some html
    @for(int j = 0; j < Model.TrailerCollection[i].Trailers.Count(); j++)
    {
        <div>
            @Html.CheckBoxFor(m => m.TrailerCollection[i].Trailers[j].SelectedTrailer, new {data_id = Model.TrailerCollection[i].Trailers[j].TrailerTypeId}
        </div>
    }
}

现在,我根据需要输出html,每个项目旁边都有一个复选框,但是当我将模型发布回控制器时会出现问题。 如果我有一个说10个复选框的列表并检查它们全部,当模型传递给控制器​​时,第一个总是假,即使被选中,但其他的都没问题。 以下是JS的清晰度。

var data = $("#form1").seralize
$.ajax({ 
    url: 'xxxx',
    data:data,
    type:'post'
    success: function(result)
    {...}
});

我的控制器代码段

public async Task<HttpResponseMessage> Update(VM model)

我只是有点困惑为什么第一个总是假的。 非常感谢任何帮助。

呈现HTML

<div class="row">
    <div class="col-lg-8"> Trl_86_dd_1 </div>
        <div class="col-lg-4">
            <input data-id="11" id="TrailerCollection_0__Trailers_0__SelectedTrailer" name="TrailerCollection[0].Trailers[0].SelectedTrailer" value="true" type="checkbox">
            <input name="TrailerCollection[0].Trailers[0].SelectedTrailer" value="false" type="hidden">
        </div>
        <input data-val="true" data-val-number="The field TrailerTypeId must be a number." id="TrailerCollection_0__Trailers_0__TrailerTypeId" name="TrailerCollection[0].Trailers[0].TrailerTypeId" value="11" type="hidden">
        <input  id="TrailerCollection_0__Trailers_0__Name" name="TrailerCollection[0].Trailers[0].Name" value="Trl_86_dd_1" type="hidden">
    </div>

<div class="row">
    <div class="col-lg-8">Trl_86_dd_2</div>
        <div class="col-lg-4">
            <input checked="checked" data-id="26" id="TrailerCollection_0__Trailers_1__SelectedTrailer" name="TrailerCollection[0].Trailers[1].SelectedTrailer" value="true" type="checkbox">
            <input name="TrailerCollection[0].Trailers[1].SelectedTrailer" value="false" type="hidden">
        </div>
        <input data-val="true" data-val-number="The field TrailerTypeId must be a number." id="TrailerCollection_0__Trailers_1__TrailerTypeId" name="TrailerCollection[0].Trailers[1].TrailerTypeId" value="26" type="hidden">
        <input id="TrailerCollection_0__Trailers_1__Name" name="TrailerCollection[0].Trailers[1].Name" value="Trl_86_dd_2" type="hidden">
    </div>

0 个答案:

没有答案