簡體   English   中英

ASP.Net Model 到 Javascript - 將數據從服務器傳遞到客戶端

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

嘿伙計們快速提問將 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 歲或更高,所以我猜現在應該有一種更簡單的方法來做到這一點?

我覺得這需要一個答案,因為它是 2 號來自谷歌的結果並且已被查看超過 200 次,並且正如 OP 所述,其他所有答案通常都很長和/或令人費解。 但最簡單的答案是:

Javascript 添加到您的 aspx 頁面:

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

關鍵是您的 output 的 HTML 如下所示:

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

Javascript 本機處理 JSON 因此您無需在客戶端重新解析任何內容。 如果 object 被正確序列化,它將被識別而無需進一步轉換(這包括列表和 object 屬性)。

在 OP 中提供的示例中,生成的 Javascript object 將是一個簡單的數組。 因此,對客戶端元素的訪問將是:

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

為了提供 OP 試圖在客戶端執行的 Javascript 屬性調用功能,服務器端需要以下內容:

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

其中帶有 Named 屬性的 object 被序列化到頁面中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM