Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何为敲除的观察值设置初始值(对于级联列表)?_Asp.net Mvc_Knockout.js - Fatal编程技术网

Asp.net mvc 如何为敲除的观察值设置初始值(对于级联列表)?

Asp.net mvc 如何为敲除的观察值设置初始值(对于级联列表)?,asp.net-mvc,knockout.js,Asp.net Mvc,Knockout.js,我正在测试非常棒的Knockoutjs。我面临一个特殊的问题 我发现了一个类似的问题:,但它没有帮助,因为我的是级联列表 我使用来自服务器的数据,按如下方式创建了我的初始模型 var initialModel = @Html.Raw(JsonConvert.SerializeObject(Model)) ; 然后我定义我的viewModel如下 var viewModel = { evaluationGroups :ko.observableArray(initialModel

我正在测试非常棒的Knockoutjs。我面临一个特殊的问题

我发现了一个类似的问题:,但它没有帮助,因为我的是级联列表

我使用来自服务器的数据,按如下方式创建了我的初始模型

var initialModel = @Html.Raw(JsonConvert.SerializeObject(Model)) ;
然后我定义我的viewModel如下

    var viewModel = {
    evaluationGroups :ko.observableArray(initialModel.EvaluationGroups),
    SelectedEvaluationArea:ko.observable(initialModel.selectedEvaluationArea ? initialModel.selectedEvaluationArea.Id :null ),
    SelectedEvaluationGroup :ko.observable(initialModel.selectedEvaluationGroup)
}
现在,我想要级联选择列表。因此,我的约束力如下

<fieldset>
            <legend>Evaluation Group and Area</legend>
            <p>
                <select id="EvaluationGroupId" name="EvaluationGroupId" data-bind='options: evaluationGroups, optionsText:"Title", value:SelectedEvaluationGroup,  optionsCaption: "Select Group..."'></select>
            </p>
             <p>
                <select id="EvaluationAreaId" name="EvaluationAreaId" data-bind='options: SelectedEvaluationGroup()? SelectedEvaluationGroup().EvaluationAreas:null,  optionsValue: "Id", optionsText:"Title", value:SelectedEvaluationArea,  optionsCaption: "Select Area..."'></select>
            </p>
            </fieldset>

问题是,我无法从服务器数据中提取初始值。如果我看到viewModel.SelectedEvaluationGroup的值,当页面刚刚加载时,使用默认值,我看到未定义。但是,如果我看到initialModel.selectedEvaluationGroup,它就是完整的对象,正如预期的那样。我做错了什么?这不是初始化Knockout的可观察对象的正确方法吗?

也许您忘记运行applyBindings命令了

i、 e

使现代化 我和你的朋友玩过了。当手动将初始值设置为主数组中的值时,似乎很乐意绑定到初始值


我建议你把jsfiddle.netts里的东西放在一起看看,安德鲁。实际上,我已经应用了绑定;只是我忘了在上面的示例代码中提到。除了最初的绑定之外,一切都很正常。看看JSFIDLE:我仍在学习击倒-所以我不确定为什么它不会绑定到您传递的值。不过,我还是在上面的答案中找到了答案——奇怪的是,谢谢你,安德鲁。我想,现在我会按照你的建议解决我的问题。我认为,由于selectedEvaluationGroup或selectedEvaluationArea与主数组中包含的对象不同,因此存在问题。就像在C中一样,我们可能需要定义一些检查这些对象是否相等的方法。我想知道是谁否决了你的答案。有什么办法可以看到这样的画面吗?
ko.applyBindings(viewModel);