2010-10-13 2 views
0

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

Вот 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> 

и вот cooresponding веб-метод:

[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.

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

Благодаря Дино

ответ

0

Вы должны приложить Visual Studio к w3wp.exe, на котором выполняется веб-приложение и поставить точку останова.

Другая возможность состоит в том, чтобы поставить system.net трассировку, чтобы вывести все данные, поступающие в и из приложения:

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

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

0

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

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

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

0

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

0

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

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

Смежные вопросы