ASP.Net模型到Javascript-将数据从服务器传递到客户端

ASP.Net Model to Javascript - Passing Data from server to client

本文关键字:服务器 客户端 Net 模型 Javascript- ASP 数据      更新时间:2023-09-26

嘿,伙计们,快速提问将Model转换为Javascript的最佳方法是什么。

我试过用这个

@{ 
    var arr = new string[3];
    arr[0] = "1";
    arr[1] = "2";
    arr[2] = "3"; 
    var jason = JsonConvert.SerializeObject(Model);
}
<script type="text/javascript">   
    var string = '@jason';
    var variable2 = jQuery.parseJSON(string);
    alert(variable2.Id);
</script> 

正如你所猜测的那样,它不起作用,我查看了jQuery的示例,它应该起作用,但我不确定它是否与.net 的JsonConvert兼容

这是我第一次在客户端编程,所以这是一个非常简单的问题,但我试着从网上寻找答案。我看到的大多数答案都非常复杂,而且至少有3个或更高的年龄,所以我想现在应该有一种更简单的方法来做这件事了?

我觉得这需要一个答案,因为这是谷歌的第二个结果,已经被浏览了200多次,正如OP所说,每隔一个答案通常都很长和/或很复杂。但最简单的答案是:

添加到aspx页面的Javascript:

<script type="text/javascript">
   var myObject = <%=JsonConvert.SerializeObject(MyNetObject)%>;
</script>

关键是HTML的输出如下所示:

<script type="test/javascript">
   var myObject = {"Prop1":"value1","Prop2":"Value2"};
</script>

Javascript本机处理JSON,因此您不需要在客户端重新分析任何内容。如果对象被正确序列化,它将被识别,而无需进一步转换(包括列表和对象属性)。

在OP中提供的示例中,生成的Javascript对象将是一个简单的数组。因此,对客户端元素的访问将是:

alert(variable2[0]), alert(variable2[1]), alert(variable2[2])....

为了提供OP试图在客户端执行的Javascript属性调用功能,需要在服务器端执行以下操作:

var json = JsonConvert.Serialize(new { ID1 = 1, ID2 = 2, ID3 = 3 });

其中具有命名属性的对象被序列化到页面中。