C# 在web方法中访问JSON调用的参数
我有下面的JSON调用,我传递的数据从我所看到的来看似乎被正确地字符串化了,但是,我似乎没有正确的语法来处理公共web方法中的参数 以下是JSON调用:C# 在web方法中访问JSON调用的参数,c#,jquery,asp.net,json,C#,Jquery,Asp.net,Json,我有下面的JSON调用,我传递的数据从我所看到的来看似乎被正确地字符串化了,但是,我似乎没有正确的语法来处理公共web方法中的参数 以下是JSON调用: <script type="text/javascript" language="javascript"> var qs = new Querystring(); var v1 = qs.get("TorVName"); var jsonData = JSON.stringify(v1);
<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>
等等等等
我很难决定如何调试web方法,因为我只能在firebug中看到客户端操作
任何关于如何在web方法中接收和处理参数的帮助都将不胜感激
感谢Deano您需要将Visual Studio连接到运行web应用程序的w3wp.exe并设置断点 另一种可能是使用System.Net跟踪来输出进出应用程序的所有数据:
将内容放在web.config中。您的数据需要采用名称/值对格式,如下所示:
var jsonData = JSON.stringify({ TorVName: qs.get("TorVName") });
web方法正在查找名为
TorVName
的属性,因此JSON请求需要一个名称/值对,而不仅仅是字符串。在上面的代码中,TorVName:
是因为web方法中的参数就是这样命名的。正如其他人所说,您不需要一个带有参数TorVName的json对象,因为您的web方法正在寻找htat。
一个简单的方法是
变量数据={}//创建新对象
数据['torVName']=实际数据';
然后在ajax调用中,您可以说
数据:JSON.stringify(data)在建议IE8中的stringify内容之前,也许你们应该先阅读以下内容: 当字符串化在不同窗口中创建的对象时,JSON返回“undefined” 请参阅测试用例
var jsonData = JSON.stringify({ TorVName: qs.get("TorVName") });