Asp.net mvc 3 如何在下拉列表加载完成后运行某些操作

Asp.net mvc 3 如何在下拉列表加载完成后运行某些操作,asp.net-mvc-3,knockout.js,Asp.net Mvc 3,Knockout.js,我需要在下拉列表中填入我的Web服务中的项目后选择一个默认值。如何检测下拉项的加载是否已完成 <select id="countriesList" data-url="@Url.Action("GetAllCountries", "Countries", new { Area = "Panel" })" data-bind="options: countries, optionsValue: 'ID',

我需要在下拉列表中填入我的Web服务中的项目后选择一个默认值。如何检测下拉项的加载是否已完成

    <select id="countriesList"
                    data-url="@Url.Action("GetAllCountries", "Countries", new { Area = "Panel" })"
                    data-bind="options: countries, optionsValue: 'ID', optionsText: 'Name', optionsCaption: 'Selecione um país', value: selectedCountry">
                </select>

您可以尝试创建自己的KO绑定,以便附加适当的回调函数:


处理程序应尽可能模仿ko.bindingHandlers.options,因此调用ko.bindingHandlers.options.update。ko.bindingHandlers.options没有init方法,因此不需要init方法

你需要知道你是如何填充下拉列表的……你能使用getJson方法的successcallback选项吗?但这可能发生在knockout绑定它之前?这就是问题所在,如果出于某种原因knockout需要花费大量时间从getJson方法添加项,那么我可能会在异步执行方面遇到问题。
    $.getJSON($('#countriesList').data('url'), function (data) {
            self.countries(data);
        });