CheckBoxFor在ASP.NET MVC中的javascript函数中返回先前的值

时间:2013-06-13 13:11:57

标签: javascript jquery asp.net-mvc-3 checkbox

我正在使用带有c#的ASP.NET MVC。

我在我的视图中使用了CheckBoxFor,它的布尔值为RememberMe。

这是我在视图中的复选框:

<%:Html.CheckBoxFor(model => model.RememberMe)%>

并在.js函数中获取它的值。

默认情况下,它设置为true 但如果我取消选中该框,它仍然会返回.js函数的真值。

viewModel值的函数:

function getViewModel() {
    var viewModel = {
        'UserName': $("#UserName").val(),
        'Password': $("#Password").val(),
        'RememberMe': $("#RememberMe").val()      
    };
    return viewModel;
}

正在获得其他值正确但即使我取消选中也记得我是正确的

请建议我。

1 个答案:

答案 0 :(得分:4)

复选框元素的value属性是固定的 - 这不是您想要检查的内容。如果在提交表单时选中该框,则此名称/值对仅通过HTTP 发送

相反,请查看函数中是否选中了复选框,并相应地设置了view-model属性值:

function getViewModel() {
    var viewModel = {
    'UserName': $("#UserName").val(),
    'Password': $("#Password").val(),
    'RememberMe': $("#RememberMe").is(":checked") ? "true" : "false"
    };
    return viewModel;
}

或者您希望传递的任何值而不是“true”或“false”