将Json数据加载到DropdownList

时间:2015-02-18 12:12:05

标签: json asp.net-mvc

我必须在我的应用程序中将数据从json文件加载到ddl,对于ex

我的应用程序中有countries.json,

与州和城市相同,

[{"label":"US Dollars (USD)","country":"US","value": "USD"},"label":"CA Dollars (CAD)","country":"CA","value": "CAD"},{"label":"UK Pounds (GBP)","country":"UK","value": "GBP"}]

我这样做是为了减少往返次数,并直接从json文件加载数据。

任何人都可以建议我如何在mvc应用程序中执行此操作。

2 个答案:

答案 0 :(得分:0)

前段时间我写了一篇博文,使用api端点填充了json的下拉列表,但填充部分仍然是相同的

http://jnye.co/Posts/12/creating-cascading-dropdownlists-using-mvc-4-and-jquery

您希望浏览每个项目,并向您添加<option>下拉列表

                var dropdown = $('#ddl');
                //clear drop down of old states
                stateDropdown.empty();

                //retrieve data for ddl...
                var data = ...

                $.each(data, function (i, item) {
                    //Create new option
                    var option = $('<option />').html(item.label);
                    //append state states drop down
                    dropdown .append(option);
                });

注意:我不是IDE,所以请原谅任何拼写/命名错误

答案 1 :(得分:0)

jQuery可以做得很好,但如果你将很多JavaScript对象绑定到你的UI,你可能想看看像Knockout.js这样的框架

var ddl = $('<select></select>');

for(var i = 0; i < yourJsonObj.length; i++) {
    var currency = yourJsonObj[i];
    ddl.append($('<option></option>').val(currency.value).text(currency.label));
}

$('body').append(ddl);

编辑: 我注意到你指定了MVC标签而不是JavaScript。 JavaScript可以原生地理解JSON,因此最容易在客户端上执行此操作。如果您想在C#Model或Controller中执行此操作,您可能希望使用类似json.NET的库来轻松地将JSON解析为所需类型。