Asp.net mvc 为什么ASP.NET MVC4中的复选框总是给出false值?
我直接用HTML编写了以下代码:Asp.net mvc 为什么ASP.NET MVC4中的复选框总是给出false值?,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我直接用HTML编写了以下代码: <label for="RememberMe"> <input type="checkbox" name="RememberMe" id="RememberMe" value="true" /> <span>Remember me?</span> <input name="RememberMe" type="hidden" value="false"> </label>
<label for="RememberMe">
<input type="checkbox" name="RememberMe" id="RememberMe" value="true" />
<span>Remember me?</span>
<input name="RememberMe" type="hidden" value="false">
</label>
viewmodel与MVC示例中使用的相同
以下是我正在使用的CSS:
label {
display:block;
}
input[type="radio"],
input[type="checkbox"] {
display:none;
}
input[type="radio"] + span:before,
input[type="checkbox"] + span:before {
font-family: 'FontAwesome';
padding-right: 3px;
}
input[type="radio"] + span:before {
content: "\f10c";
}
input[type="radio"]:checked + span:before {
content: "\f111";
}
input[type="checkbox"] + span:before {
content: "\f096";
}
input[type="checkbox"]:checked + span:before {
content: "\f046";
}
以下是完整的代码:
<form action="/Account/Login" id="login-form" class="form" method="post">
@Html.AntiForgeryToken()
<div id="input-fields">
<div>
@Html.TextBoxFor(m => m.UserName, new
{
id = "user-name",
placeholder = "Username (or guest)",
required = "required ",
@size = "25"
})
</div>
<div>
@Html.PasswordFor(m => m.Password, new
{
placeholder = "Password (or guest)",
required = "required ",
@size = "25"
})
</div>
<label for="RememberMe">
<input type="checkbox" name="RememberMe" id="RememberMe" value="true" />
<span>Remember me?</span>
<input name="RememberMe" type="hidden" value="false">
</label>
</div>
<button class="medium default" id="login" type="submit">Login</button>
<button class="medium" id="register" type="button" onclick="location.href='/Account/Register'">Register</button>
</form>
@Html.AntiForgeryToken()
@Html.TextBoxFor(m=>m.UserName,新
{
id=“用户名”,
占位符=“用户名(或来宾)”,
required=“required”,
@size=“25”
})
@Html.PasswordFor(m=>m.Password,新
{
占位符=“密码(或来宾)”,
required=“required”,
@size=“25”
})
还记得我吗?
登录
登记
还有一个javascript:
<script type="text/javascript">
(function () {
document.getElementsByClassName('form')[0]
.addEventListener("submit", function (ev) {
document.getElementById("login").disabled = true;
document.getElementById("register").disabled = true;
document.getElementById("RememberMe").disabled = true;
document.getElementById('message').innerHTML = ev.target.getAttribute('id') == "register-form" ? "System: Registering " : "System: Authenticating ";
setInterval(function () {
document.getElementById('message').innerHTML += '. ';
}, 3000);
}, false);
})();
</script>
document.getElementById("RememberMe").disabled = true;
(功能(){
document.getElementsByClassName('form')[0]
.addEventListener(“提交”,功能(ev){
document.getElementById(“login”).disabled=true;
document.getElementById(“寄存器”).disabled=true;
document.getElementById(“RememberMe”).disabled=true;
document.getElementById('message').innerHTML=ev.target.getAttribute('id')==“注册表单”?“系统:注册”:“系统:验证”;
setInterval(函数(){
document.getElementById('message').innerHTML+=';
}, 3000);
},假);
})();
表单提交时,您似乎正在禁用复选框。这可能会阻止传递复选框值,使其默认为隐藏字段值
尝试从javascript中删除此行:
<script type="text/javascript">
(function () {
document.getElementsByClassName('form')[0]
.addEventListener("submit", function (ev) {
document.getElementById("login").disabled = true;
document.getElementById("register").disabled = true;
document.getElementById("RememberMe").disabled = true;
document.getElementById('message').innerHTML = ev.target.getAttribute('id') == "register-form" ? "System: Registering " : "System: Authenticating ";
setInterval(function () {
document.getElementById('message').innerHTML += '. ';
}, 3000);
}, false);
})();
</script>
document.getElementById("RememberMe").disabled = true;
您能否显示相关代码,即控制器?CSS似乎不太相关。您如何获取值?我使用的是标准ASP.NET MVC示例代码。我将发布视图模型的详细信息。然而,我所做的是用fiddler进行检查,在所有情况下我都会看到:类似这样的东西:uuu RequestVerificationToken=FY0uW5XRcoE6GC\u pdu\u 2sngpeloxnd8tq1doipekk1yfvbw2gusmimesvwmw\u wzAt2xQt0\u misscgibv-2mQcj1oZ-cscv-NNAt0v4TZ41&UserName=abcdedddddd&Password=dddddddddddd&RememberMe=false