我正在尝试通过 AJAX 将用户创建的动态对象传递给某些 C#。我对 JSON 不是很熟悉,但这似乎是个好方法。我不确定为什么,但它在我声明对象时给了我一个错误。 (据说。)我做错了什么?谢谢。
编辑:它似乎只在 IE 中出错,但我需要它在 IE7 中工作。
网页错误详情
用户代理:Mozilla/4.0(兼容;MSIE 7.0;Windows NT 6.1;WOW64;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;. NET4.0C;.NET4.0E;MDDC;InfoPath.2) 时间戳:2012 年 3 月 28 日星期三 14:15:19 UTC
消息:预期的标识符、字符串或数字 线路:18 字符:21 代码:0 网址:http://localhost:56560/Default.aspx
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
$(function() {
$('input[type=button').click(function(){
var json_obj = { $('#t1').val() : $('#p1').val(),
$('#t2').val() : $('#p2').val()};
$.ajax({
typeof: "POST",
url: '/test.aspx',
contentType: 'application/json; charset=utf-8',
data: json_obj,
dataType: 'json',
success: function(msg) {
alert('Success!');
},
error: function(msg) {
alert('Error!');
}
});
});
});
</script>
</head>
<body>
<div>
Type: 1: <input type="text" id="t1" />
Property 1: <input type="text" id="p1" />
Type 2: <input type="text" id="t2" />
Property 2: <input type="text" id="p2" />
<input type="button" value="Add object!" />
</div>
</body>
</html>
代码隐藏
public class Test
{
public Test(string json)
{
JObject jObj = JObject.Parse(json);
JToken jUser = jObj["json_obj"];
first = (string)jObj["t1"];
second = (string)jObj["t2"];
}
public string first { get; set; }
public string second { get; set; }
}
最佳答案
我觉得你的json数据格式不对。试试这个:
var json_obj = "{'" + $('#t1').val() + "' : '" + $('#p1').val() + "', '" + $('#t2').val() + "' : '" + $('#p2').val() + "'}";
关于c# - 尝试使用 AJAX 和 JQuery 将 JSON 对象传递给 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9909296/