我正在将ASP.NET MVC与c#一起使用。

我在我的视图中使用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;
}


它正在获取其他正确的值,但是即使我取消了它,RememberMe还是正确的

请给我一些建议。

最佳答案

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

因此,请查看您的函数中是否已选中该复选框,并相应地设置一个view-model属性值:

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


或您要传递的任何值,而不是“ true”或“ false”

09-18 18:46