0

私は以前にJsonに取り組んだことがなく、初めてで、予想通り、ドロップダウンをJsonDataで埋めたいところに行き詰まりました。ここで私がやっていることは、次のようにJsonで変換しているXmlを持っていることです:

string xml = "<Root><Name>A</Name><Name>B</Name><Name>C</Name></Root>";

次に、これを実行してJsonStringに変換します。

XmlDocument doc = new XmlDocument();
            doc.LoadXml(Xml);
            string jsonText = JsonConvert.SerializeXmlNode(doc);

現在、私のビューは次のようなものです:

<div>
        <input type="button" value="work" name="work" id="idwork" />
    </div>
    @Html.DropDownListFor(x => x.Name, new SelectList(Enumerable.Empty<SelectListItem>()), new {id="ddl_items" })

スクリプト:

var ddl = $('#ddl_items');
    $('#idwork').on('click', function () {
                $.ajax({
                    url: url,
                    data: {},
                    type: 'post',
                    contentType: 'application/json; charset=utf-8',
                    success: function (myJSONdata) {
  $(myJSONdata.Name).each(function () {
                        ddl.append(
                            $('<option/>', {
                                value: this.ReworkTunnelName
                            }).html(this.Nome)
    ..
    ..
    });

今、私がやりたいことは、この JsonData の助けを借りて、ドロップダウンに名前を入力することです。助けてください

4

5 に答える 5

1
$.each(myJSONdata, function ()
 {
  ddl.append($("<option></option>").attr("value", this.ReworkTunnelName).text(this.Nome));
 });

編集

$.each(myJSONdata, function ()
 {
  ddl.append($("<option></option>").attr("value", this.ReworkTunnelName).attr("text",this.Nome));
 });

$.each(myJSONdata.Root, function ()
 {
  ddl.append($("<option></option>").attr("text", this.ReworkTunnelName));
 });
于 2013-10-28T12:11:57.347 に答える
0

私はこれを行うことになり、これは正常に機能しています..

$('#idRework').on('click', function () {
            $.ajax({
                url: url,
                data: {},
                type: 'post',
                contentType: 'application/json; charset=utf-8',
                success: function (myJSONdata) {
                    var obj = jQuery.parseJSON(myJSONdata);                   
                    $.each(obj.Root.ReworkTunnelName, function (index, itemData) {
                        ddl.append($('<option></option>').val(itemData).html(itemData));

                    });

                }
            });
        });
于 2013-10-28T12:38:07.970 に答える
0

これを試して

$.each(myJSONdata, function (index, item) {  
   $('#ddl_items').get(0).options[$('#ddl_items').get(0).options.length] = new Option(item.Text, item.Value);
});
于 2013-10-28T12:28:02.303 に答える
0

getJSONjQuery でメソッドを使用できます:

$.getJSON("ActionMethodName", "", function (data) {
                $(data).each(function () {
                    $("<option>").val(this.ReworkTunnelName)
                                 .text(this.Nome)
                                 .appendTo("#ddl_items");
                });
});

HTML :

<select id="ddl_items">
    <option></option>
</select>
于 2013-10-28T12:24:13.320 に答える