我想将数据从我的代码隐藏文件(javascript
)传递到C#
代码,我想在javascript
端的内容如下所示
var data = [
{
"date": "24-Apr-07",
"close": 93.24
},
{
"date": "25-Apr-07",
"close": 95.35
},
{
"date": "26-Apr-07",
"close": 98.84
}
];
我尝试将其作为字符串传递,但因为它仅将整个事物视为字符串而失败了。
还有其他选择吗?
答案 0 :(得分:0)
您可以尝试使用http://www.newtonsoft.com/json。
Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Sizes = new string[] { "Small" };
string json = JsonConvert.SerializeObject(product);
// {
// "Name": "Apple",
// "Expiry": "2008-12-28T00:00:00",
// "Sizes": [
// "Small"
// ]
// }
在你的JS中你可以用这种方式反序列化它:
var des_obj = JSON.parse( json_string );
答案 1 :(得分:0)
如果你在javascript端得到字符串,你需要做的就是将字符串包装在JSON.parse()
中以获取你的数据。
var data = JSON.parse('[
{
"date": "24-Apr-07",
"close": 93.24
}, {
"date": "25-Apr-07",
"close": 95.35
}, {
"date": "26-Apr-07",
"close": 98.84
}
]');
答案 2 :(得分:0)
你可以通过Ajax调用来实现..
在Javascript方面:
$.ajax({
type: "POST",
url: "Default.aspx/GetData",
data: dataValue,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
},
success: function (result) {
alert("We returned: " + result);
}
});
在Code背后:
[WebMethod]
public static string GetData()
{
// return your data
}
从GetData()返回对象时,它会自动序列化数据。您也可以使用return JsonConvert.SerializeObject(obj);
答案 3 :(得分:-1)
是的,你可以使用JsonConvert Class:
来做到这一点在C#代码背后:
C#ModelClass:
public class RootObject
{
public string date { get; set; }
public double close { get; set; }
}
通过给出C#
这样的对象来创建一个返回json的方法:
public class JSONConverter
{
public string Convert(List<RootObject> list)
{
return JsonConvert.SerializeObject(list);
}
}
在 ActionMethod :
中public void ActionResult()
{
List<RootObject> list = repo.GetList(); // i assumed that you get list
//from repo
ViewBag.modelList = JsonConverter.Convert(list);
return View()
}
毕竟在C#中查看:(注意:我假设您使用的是Razor视图引擎)
<script>
var data = @ViewBag.modelList
<script>
您的json序列化c#数组可以分配给data
。