доступ к параметрам вызова JSON в веб-методе - PullRequest
0 голосов
/ 14 октября 2010

У меня следующий вызов JSON, данные, которые я передаю, по-видимому, правильно получают stringify из того, что я смотрю, однако у меня нет правильного синтаксиса для обработки параметра в общедоступный веб-метод.

Вот вызов JSON:

<script type="text/javascript" language="javascript"> 

  var qs = new Querystring();

  var v1 = qs.get("TorVName");

  var jsonData = JSON.stringify(v1);  

        $().ready(function() {
            $.ajax({
                type: "POST",
                url: "Default.aspx/GetColumns",
                data: jsonData,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
       var optString = '<option value="-1">Select Column</option>';
        $.each(msg.d, function(index, item) {
        optString += '<option value="' + item + '">' + item + '</option>';
        });
        $('select[name^=DDLColumns]').html(optString);
                },
                error: function() {
                    alert("Failed to load columns");
                }
            });
        });
</script>

и вот соответствующий веб-метод:

    [WebMethod]
    public static ArrayList GetColumns(string TorVName)
    {
        String cnstr = "myconnect string";
        string Sql = String.Empty;
        ArrayList arlist = new ArrayList();
        SqlDataReader rdr = null;
        SqlCommand cmd = null;
        DataSet dset;
        SqlConnection cn = new SqlConnection(cnstr);
        cn.Open();
        dset = new DataSet("ds");
        dset.Clear();

и т. Д. И т. Д. *

Мне трудно решить, как отлаживать веб-метод, поскольку я вижу только действия на стороне клиента в firebug.

любая помощь в том, как получить и обработать параметр в веб-методе, была бы очень признательна.

Спасибо, Деано

Ответы [ 4 ]

0 голосов
/ 15 октября 2010

Может быть, вы, ребята, должны прочитать это, прежде чем предлагать что-то в IE8:

JSON возвращает значение undefined при строковом преобразовании объекта, созданного в другом окне. Смотрите тестовый пример на http://kinsey.no/examples/ie8_json_bug/

0 голосов
/ 14 октября 2010

Ваши данные должны быть в формате пары имя / значение, например:

 var jsonData = JSON.stringify({ TorVName: qs.get("TorVName") }); 

Веб-метод ищет свойство с именем TorVName, поэтому вам нужна пара имя / значение с этим для вашего запроса JSON, а не просто строка. В приведенном выше коде TorVName: потому, что именно так назван параметр в веб-методе.

0 голосов
/ 14 октября 2010

, как говорили другие, вам не нужен объект json с параметром torVName, поскольку htat - это то, что ищет ваш веб-метод.простой способ сделать это - var data = {}; // создать новые данные объекта ['torVName'] = фактическая дата ';тогда в вашем вызове ajax вы можете просто сказать data: JSON.stringify (data)

0 голосов
/ 14 октября 2010

Вам необходимо подключить Visual Studio к w3wp.exe, на котором запущено ваше веб-приложение, и установить точку останова.

Другая возможность - установить трассировку System.Net для вывода всех входящих и исходящих данных.приложения:

http://blogs.msdn.com/b/dgorti/archive/2005/09/18/471003.aspx

Поместите материал в web.config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...