Asp.net mvc 使用knockoutjs绑定复选框列表

Asp.net mvc 使用knockoutjs绑定复选框列表,asp.net-mvc,model-view-controller,knockout.js,Asp.net Mvc,Model View Controller,Knockout.js,我正在尝试使用knockoutjs绑定一个复选框列表。 我有一个与配置文件列表相关的用户,我想要的是当页面加载到带有用户配置文件的复选框列表时 这是我的密码 var userProfileList = []; var jsonUserAdminModel = null; var viewModel = { ,firstName: ko.observable() ,lastName: ko.observable() ,userId: ko.observable()

我正在尝试使用knockoutjs绑定一个复选框列表。 我有一个与配置文件列表相关的用户,我想要的是当页面加载到带有用户配置文件的复选框列表时

这是我的密码

var userProfileList = [];
var jsonUserAdminModel = null;
var viewModel = {
    ,firstName: ko.observable()
    ,lastName: ko.observable()
    ,userId: ko.observable()
    ,userProfiles: ko.observableArray(userProfileList)
    ,result: ko.observable()
};

viewModel.result = ko.computed(function () {
    jsonUserAdminModel = {
        UserId: (this.userId() != undefined ? this.userId() : null)
        ,FirstName: (this.firstName() != undefined ? this.firstName() : null)
        ,LastName: (this.lastName() != undefined ? this.lastName() : null)            
    }
    return jsonUserAdminModel;
}, viewModel);

$(document).ready(function () {               
        ko.applyBindings(viewModel);
        //Init the list of all profiles
        viewModel.userProfiles(@Html.Raw(Json.Encode(Model.Profiles)));
    });
HTML


我想检查用户默认配置文件并将其绑定


谢谢。

您需要将输入绑定到用户配置文件对象上选中的
。要做到这一点,您需要创建一个profile viewmodel,并将原始数据转换为该viewmodel的实例,以便可以观察到它们的属性。您也可以使用插件来实现这一点

然后,您的HTML将如下所示:

<div id="UserProfiles" data-bind="foreach: userProfiles" style="margin: 10px">
    <input type="checkbox" data-bind="attr: {value: ProfileId() }, checked: isChecked" /><span data-bind="text: Name"></span>
</div>


不太确定您在这里要问什么。为此,请共享JSFIDLE,这样很容易诊断问题。
<div id="UserProfiles" data-bind="foreach: userProfiles" style="margin: 10px">
    <input type="checkbox" data-bind="attr: {value: ProfileId() }, checked: isChecked" /><span data-bind="text: Name"></span>
</div>