MVC.NET 4强类型视图和Checkbox不绑定

时间:2016-04-10 09:46:56

标签: asp.net-mvc checkboxfor

我正在构建一个带有强类型视图的复选框列表,当时我被一个非常奇怪的情况所阻止。 所以有我的模型观点:

public class QuadroClinicoModelView 
{ 
    public  QuadroClinicoModelView()
    {
        this.check = false;
    }

    public String codigo { set; get; }
    public String nome { set; get; }
    public bool check { set; get; } 
}

我的复选框列表:

public List<QuadroClinicoModelView> quadrosClinicos { set; get; }

然后在我的视图中:

<tbody>
    @for (var i = 0; i < Model.quadrosClinicos.Count; i++)
    {
        <tr>
            <td>@Html.CheckBoxFor(x => x.quadrosClinicos[i].check)</td>
            <td>
                @Html.HiddenFor(x => x.quadrosClinicos[i].codigo)
                @Model.quadrosClinicos[i].codigo
            </td>

    .
    .
    .
</tbody>

每次我的列表中都有两个以上的复选框,一切正常。 但不知何故,当我有2个或更少的复选框时,模型视图在我提交表单时不会绑定....

我查看Microsoft所做的奇怪的表单构造,使用具有相同名称属性的两个不同输入(隐藏和复选框),但是当我使用html帮助程序构建自定义复选框时:

public static class CheckBoxHelper
{
    public static MvcHtmlString CustomCheckBoxFor(this HtmlHelper htmlHelper, string name, object htmlAttributes)
    {
        string checkBoxWithHidden = htmlHelper.CheckBox(name, htmlAttributes).ToHtmlString().Trim();
        string pureCheckBox = checkBoxWithHidden.Substring(0, checkBoxWithHidden.IndexOf("<input", 1));
        return new MvcHtmlString(pureCheckBox);
    }
    public static MvcHtmlString CustomCheckBoxFor(this HtmlHelper htmlHelper, string name)
    {
        string checkBoxWithHidden = htmlHelper.CheckBox(name).ToHtmlString();
        string pureCheckBox = checkBoxWithHidden.Substring(0, checkBoxWithHidden.IndexOf("<input", 1));
        return new MvcHtmlString(pureCheckBox);
    }
}

请求具有正确的值而不是&#34; true,false&#34;情况,但模型视图保持空值。 我想避免在模型视图未绑定时从请求中读取值,这是我记得的唯一解决方法。

有人可以帮助我或看到像我上面解释过的问题吗?

0 个答案:

没有答案