JavaScript - 从C#代码传递数据

时间:2017-07-19 07:50:07

标签: javascript c#

我想将数据从我的代码隐藏文件(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 
    }
];

我尝试将其作为字符串传递,但因为它仅将整个事物视为字符串而失败了。

还有其他选择吗?

4 个答案:

答案 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