Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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
Jquery 如何通过json结果绑定我的dropdownlist?_Jquery_Ajax_Asp.net Mvc_Jquery Ui_Html.dropdownlistfor - Fatal编程技术网

Jquery 如何通过json结果绑定我的dropdownlist?

Jquery 如何通过json结果绑定我的dropdownlist?,jquery,ajax,asp.net-mvc,jquery-ui,html.dropdownlistfor,Jquery,Ajax,Asp.net Mvc,Jquery Ui,Html.dropdownlistfor,开发者工具网络选项卡中我的json字符串是: "{\"1\":\"GJ_CITY1\",\"2\":\"GJ_CITY2\",\"3\":\"GJ_CITY3\", \"4\":\"GJ_CITY1\",\"5\":\"Aman\",\"6\":\"Aman\", \"7\":\"Aman\",\"8\":\"Aman\",\"9\":\"Alwar\"}" 我看过很多文章,但都不管用,我对ajax数据绑定很陌生,我的mvc代码是 $.ajax({ type:"GET"

开发者工具网络选项卡中我的json字符串是:

"{\"1\":\"GJ_CITY1\",\"2\":\"GJ_CITY2\",\"3\":\"GJ_CITY3\",
  \"4\":\"GJ_CITY1\",\"5\":\"Aman\",\"6\":\"Aman\",
  \"7\":\"Aman\",\"8\":\"Aman\",\"9\":\"Alwar\"}"
我看过很多文章,但都不管用,我对ajax数据绑定很陌生,我的mvc代码是

$.ajax({
        type:"GET",
        datatype:"JSON",
        url: queryLink,
        async: true,
        success: function (result) {

            $('#Cities').html("");//clear before bind
            $.each(result, function (i, Cities) {
                $("#Cities").append($('<option value=\"" + key + "\">" + val + "</option>'));
            });
        }
});
我的控制器代码是

 CitiesDao cities_obj = new CitiesDao();
        HybridNetworkHandoverdto obj = new HybridNetworkHandoverdto();
        var query1 = cities_obj.Details().Tables[0].AsEnumerable().Select(t => new CityDto
        {
            State_id = t.Field<long>("state_id"),
            State_name = t.Field<string>("state_name"),
            City_id = t.Field<long>("City_id"),
            City_name = t.Field<string>("City_name")
        }).ToList();
        ViewBag.cities = query1;
        Dictionary<string, string> abc = new Dictionary<string, string>();
        foreach (var item in query1)
        {
            abc.Add(item.City_id.ToString(),item.City_name);
        }

        //string jsonResult = JsonConvert.SerializeObject(abc);
        var jsonResult = new JavaScriptSerializer();
        var json = jsonResult.Serialize(abc);


        return Json(json, JsonRequestBehavior.AllowGet);
按下面的步骤做-

$.each(result, function (i, value) {
    var html='<option value="'+i+'">' + value + '</option>'
    $("#Cities").append(html);
});
这是可行的,但我必须使用JSON.parse,正如@MKA所建议的那样,我不知道为什么它可以使用JSON.parse


我使用的是stephens answer,顺便说一句。

绑定有什么问题?显示生成结果的控制器方法您需要首先解决的问题您是否尝试过JSON.parse将字符串转换为实际的JSON对象?数据类型:JSON在ajax中使用jquery,不需要解析@vijayp实际上我不知道是否应该使用key和value来绑定它,所以我的json字符串建议我应该使用key和value来绑定数据。你确定Cities.val和Cities.key吗??我不知道我是从一个演示项目复制的,等等,我正在发布我的控制器code@BRBHARDWAJ请参阅问题评论中我的JSFIDLE链接谢谢Cerlin我在回答问题时很匆忙。。现在它可以工作了,因为您使用JavaScriptSerializer.serialize方法和Json方法对它进行了两次序列化,所以您必须在客户端将其解析回Json。如果删除了var json=jsonResult.abc;这样,您就不需要在客户端中使用JSON.parse。
$.each(result, function (i, value) {
    var html='<option value="'+i+'">' + value + '</option>'
    $("#Cities").append(html);
});