mvc 5的复选框不可见

时间:2016-12-30 03:41:34

标签: asp.net-mvc razor

我在剃刀视图中有一个复选框,如下所示

<div class="form-group">
    @Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" })
    <div class="col-md-10">
        @Html.PasswordFor(m => m.Password, new { @class = "form-control" })
        @Html.ValidationMessageFor(m => m.Password, "", new { @class = "text-danger" })
    </div>
</div>
<div class="form-group">
    <div class="col-md-offset-2 col-md-10">
        <div class="checkbox">
            ////////// HERE IS THE ONE MALFUNCTIONING //////////////
            @Html.CheckBoxFor(m => m.RememberMe)
            @Html.LabelFor(m => m.RememberMe)
        </div>
    </div>
</div>

enter image description here

以上呈现以下html(在浏览器中查看源代码)

<div class="form-group">
    <label class="col-md-2 control-label" for="Password">Password</label>
    <div class="col-md-10">
        <input class="form-control" id="Password" name="Password" type="password" />

    </div>
</div>
<div class="form-group">
    <div class="col-md-offset-2 col-md-10">
        <div class="checkbox">
            ////////// THERE SEEMS TO BE SOME PROBLEM BELOW WITH THE RENDERING /////////
            <input id="RememberMe" name="RememberMe" type="checkbox" value="true" />
            <input name="RememberMe" type="hidden" value="false" />
            <label for="RememberMe">Remember me?</label>
        </div>
    </div>
</div>

模型类如下

public class LoginViewModel
{
    [Required]
    [Display(Name = "Email")]
    [EmailAddress]
    public string Email { get; set; }

    [Required]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    public string Password { get; set; }

    [Display(Name = "Remember me?")]
    public bool RememberMe { get; set; }
}

我发现这种行为在浏览器中是一致的。 那我错过了什么?

修改

我不知道为什么但删除了开发<div class="checkbox">

而不是

<div class="form-group">
    <div class="col-md-offset-2 col-md-10">
        <div class="checkbox">
            ////////// HERE IS THE ONE MALFUNCTIONING //////////////
            @Html.CheckBoxFor(m => m.RememberMe)
            @Html.LabelFor(m => m.RememberMe)
        </div>
    </div>
</div>

如果我删除了一个div标签,那么它现在正常工作。不知道为什么:(。问题是不善于调试css和元素树。不知何故只是随机想出来了。感谢你们所有人的帮助。

<div class="form-group">
    <div class="col-md-offset-2 col-md-10">

        ////////// This is now working fine, not sure though why //////////////
        @Html.CheckBoxFor(m => m.RememberMe)
        @Html.LabelFor(m => m.RememberMe)

    </div>
</div>

2 个答案:

答案 0 :(得分:2)

今天遇到这个。罪魁祸首是有人在主css中添加了这段代码。

input[type="checkbox"] {
    display: none;
}

能够检查使用F12并挖掘应用于我的对象的所有样式。

在您的情况下,您可能在<div class="checkbox">.

中有类似内容

答案 1 :(得分:1)

首先,您需要签入developer's option (F12)是否呈现HTML中的复选框。

如果您的HTML呈现checkbox,请检查您的CSS文件。搜索默认复选框或其他内容。必须发表评论。这就是为什么它没有在你的视图上显示它的原因。