c# - Knockout js , mvc 下拉默认值不选择

标签 c# javascript jquery json knockout.js

看起来很简单,但我做不到。

我用来自 C# 的 Json 数据界定了一个下拉列表。

查看页面

<div class="col-md-6">
    <select data-bind="options: VehicleTypes, optionsText: 'Name', optionsValue:'ID', optionsCaption: 'All', value: VehicleTypeId" class="form-control"></select>
</div>

Json 调用

knockout 模型

var baseModel = {
    VehicleTypeId: null,
    VehicleTypes: [],
}

 var viewModel =  ko.mapping.fromJS(baseModel);

 $.get(urlPath + "/GetVehicleTypes", function (data) {     
      viewModel.VehicleTypes(data);
 });

它确实填充了下拉列表,当我在下拉列表中选择一个值时,VehicleTypeId 的值会更新。

我的问题是我想为我的下拉列表设置一个默认值,我已经用谷歌搜索了它,但没有任何东西适合我

我以 Json 形式返回的数据如下。

[{
    "ID": 32,
    "Name": "Vehicle 1"
}, {
    "ID": 30,
    "Name": "Vehicle 2"
}, {
    "ID": 31,
    "Name": "Vehicle 3"
}]

最佳答案

您的 VehicleType 需要位于 observableArray 中,并确保应用您的绑定(bind):

var baseModel = {
                // data
                VehicleTypeId: ko.observable(null),
                VehicleTypes: ko.observableArray([{
                    "ID": 32,
                    "Name": "Vehicle 1"
                }, {
                    "ID": 30,
                    "Name": "Vehicle 2"
                }, {
                    "ID": 31,
                    "Name": "Vehicle 3"
                }]),
            }

            ko.applyBindings(baseModel);

关于c# - Knockout js , mvc 下拉默认值不选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24146318/

相关文章:

javascript - Jquery 检查数组 2 是否使用数组 1 的所有值

javascript - Draft-JS - 如何使用一些不可编辑的文本创建自定义 block

javascript - Jquery 通过单击复选框仅更改一段

jquery - 即使在窗口调整大小后也将绝对定位的 DIV 居中(用于响应式设计)

c# - 不接收时检测端点关闭?

c# - Xamarin.UITest,系统绘图引用错误

c# - 在 BookControl 中显示 PDF。将 PDF 转换为 XAML?

javascript - AngularJS ngStyle 不适用于我的表格元素

jQuery 工具选项卡 : how to disable a tab

c# - 安装 Visual Web Developer 2010 时出现问题?