jQuery对Web方法的Ajax调用?

3

我将调用WebMethod来填充选择标签。成功返回但未填充选择选项。

以下是我的调用:

function getCities(country2) {
        $.ajax({
            type: 'POST',
            url: 'getCities.aspx/getCitiesArray',
            contentType: 'application/json; charset=utf-8',
            dataType: "json",
            data: "{countryName:'" + (country2) + "'}",
            success: function (msg) {
                alert(msg);
                $("#city").empty().append($("<option></option>").val("[-]").html("select city"));
                $("#city").append($("<option></option>").val("Other").html("Not in the List"));
                var htm = "";
                $.each(msg.d, function () {
                    $("#city").append($("<option></option>").val(this['Value']).html(this['Text']));
                });
            },
            error: function () {
                alert("Ajax Error");
            }
        });

在Visual Studio 2005和ASP.NET 2.0中,webmethod是什么?
[WebMethod]
        public static ArrayList getCitiesArray(string countryName)
        {
            ArrayList emptyArrayList = new ArrayList();
            string sql = "select ISNULL(CityName,'-') as CityName, ISNULL(CityCode,1) as CityCode from ListCities where CountryID = (select ISNULL(CountryID,0) from ListCountries where CountryName = '" + countryName + "')";
            DataTable dtCities = new DataTable();
            dtCities = DBUtils.GetDataTable(sql);
            ArrayList lstArrCities = new ArrayList();
            if ((dtCities != null) && (dtCities.Rows.Count > 0))
            {                
                for (int i = 0; i < dtCities.Rows.Count; i++)
                {
                    lstArrCities.Add(new ListItem(dtCities.Rows[i]["CityName"].ToString(), dtCities.Rows[i]["CityCode"].ToString()));                    
                }                                
                return lstArrCities;
            }
            return emptyArrayList;
        }

4
你还在使用带有ASP.NET 2.0的Visual Studio 2005吗?真的吗??? - frenchie
请看一下我写的这个问题和答案:https://dev59.com/E2Ml5IYBdhLWcg3woYTa,以及评论中链接的问题。 - frenchie
1
当 AJAX 调用返回时,msg 的值是多少? - sakir
1个回答

0

我建议你花更多时间调试代码,找到问题的根源。首先缩小问题范围,确定是客户端还是服务器引起的问题。例如:

  1. AJAX调用返回时msg的值是多少?如果是NULL或者其他意外的值,停止查看客户端并深入挖掘服务器端代码,然后再重新攻击前端。
  2. 当你在应用程序之外运行SELECT SQL语句时,它返回了什么?如果没有返回任何数据,你需要更深入地处理数据库和数据方面的问题。

根据你贴出的代码,很难确定问题的答案 - 特别是没有你的数据。将其分解为组成部分,然后继续构建。祝你好运。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接