1

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

我在我的视图中使用 CheckBoxFor 作为 RememberMe 的布尔值。

这是我的复选框:

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

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

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

viewModel 值的函数:

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

它使其他值正确,但即使我取消它,RememberMe 也是正确的

请给我一些建议。

4

1 回答 1

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”

于 2013-06-13T13:27:37.503 回答