如何在没有参数的情况下调用c#方法并访问返回的数据?

时间:2014-07-01 00:12:47

标签: c# javascript jquery ajax json

所以我见过很多这样的例子: https://stackoverflow.com/a/8094230/2525507

public class WebService : System.Web.Services.WebService {
   [WebMethod]
   public List<string> getList() {
      return new List<string> {"I", "Like", "Stack", "Overflow"};
   }
}

在您看来,通过成功函数,您可以以警报的形式从c#方法查看返回的数据。但是如果我想在函数调用之外访问这个“input + 1”数据怎么办呢,我该怎么做呢?另外我不知道如何调用没有参数的方法?

<body>

<select id="wordSelect">
// Drop Down Menu to be populated 
</select>

<script>
  $(function () {
    $.ajax({
      url: 'WebService.asmx/getList',
      data: '{**NO PARAMETERS?!**}', // should I also call JSON.stringify?
      type: 'POST',
      dataType: 'json',
      contentType: 'application/json',
      success: function (data, status) {
        alert(data);
        alert(typeof data);
      }
    });
  });

 $.each(data.i, function(index, item) { // will this access "I", "Like", ... etc?
     $(#wordSelect).append(
         $("<option></option>")
             .text(item)
     );
 };
</script>

</body>

最后,我想使用已经通过ajax调用的ac#方法返回的JSON数据来填充下拉列表,但是我不知道如何使用那些似乎被卡住的检索到的JSON数据在函数调用中?

抱歉,我是Jquery / AJAX /等​​的新手...但是非常感谢你!

2 个答案:

答案 0 :(得分:6)

如果您的方法不带参数,则不要在ajax调用上指定data属性

<script>
  $(function () {
    $.ajax({
      url: 'WebService.asmx/getList',
      type: 'POST',
      dataType: 'json', //make sure your service is actually returning json here
      contentType: 'application/json',
      success: function (data, status) {
        //here data is whatever your WebService.asmx/getList returned
        //populate your dropdown here with your $.each w/e
      }
    });
  });
</script>

我也错了,但你展示的WebService方法看起来不会返回json。我认为你必须序列化,或设置内容类型或类似的东西。 (自从我使用asmx类型服务以来一直沿着时间)

答案 1 :(得分:0)

请参阅我对此post的回答。我引用了一个名为Encosia的网站,由Dave Ward撰写。他有一个关于在ASP.net / MVC中使用Ajax的优秀系列。这是一个很好的起点,有很多例子。