所以我见过很多这样的例子: 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 /等的新手...但是非常感谢你!
答案 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的优秀系列。这是一个很好的起点,有很多例子。