[英]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.