从json对象获取值并将其分配给下拉列表

时间:2017-12-05 09:50:36

标签: javascript c# asp.net json twitter-bootstrap

我正在使用带有C#的asp.net WebForm页面,我有一个类Place,其属性为int placeIdstring placeBaladi baladi

Baladi类的属性为int baladiIdstring baladi

javascript 中,我正在调用一个返回对象Place的方法。 我有一个带有 TextBox HiddenField DropDownList 的Bootstrap模式, 我可以将TextBox的值设置为Place.place,将HiddenField设置为Place.placeId

我需要的是根据Place.baladi.baladiId设置DropDownList的选定索引。 当我尝试使用我的代码时,它会继续选择DropDownList中的第一项。

以下是我的代码:

public class Place
{
    public int placeId { get; set; }
    public string place { get; set; }
    public Baladi baladi { get; set; }
}
public class Baladi
{
    public int baladiId { get; set; }
    public string baladi { get; set; }
  }

<script>
        $(document).on("click", ".btnEdit", function () {
            var pid = $(this).data('id');
            $.ajax({
                type: "POST",
                url: "place.aspx/getPlace",
                data: '{placeId: "' + pid + '" }',
                contentType: "application/json; charset=utf-8",
                dataType: "json", // dataType is json format
                success: OnSuccess,
                error: OnErrorCall
            });

            function OnSuccess(response) {
                console.log(response.d);
                $("#txtEditPlace").val(response.d['place']);
                $("#ddlCity").val(response.d['baladi']['baladiId']);
                $("#hfPlaceId").val((response.d['placeId'] == null ? "" : response.d['placeId']));
            }
            function OnErrorCall(response) { console.log(response); }
        });
    </script>

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

public int baladiId { get; set; }

baladiId被声明为int。 val函数仅在传递字符串IE "2"时才有效,而2不是等价值。您是否在设置下拉列表之前尝试投射baladidId?

$("#ddlCity").val(String(response.d['baladi']['baladiId']))