簡體   English   中英

在Razor中初始化JavaScript數組

[英]Initializing a JavaScript array in Razor

我有一個在視圖中使用Razor的ASP.NET MVC應用程序。 我在控制器中構建一個JavaScript數組。 但是有時它不存在。 因此,我想在客戶端初始化它。 為了做到這一點,我有以下幾點:

var list = '@(ViewBag.List == null ? [] : ViewBag.List)';

不幸的是,這會產生一個錯誤。 錯誤是:

Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS1525: Invalid expression term '['

有沒有辦法在剃刀中對數組使用三元運算符? 如果是這樣,怎么辦?

由於Javascript使用JSON進行操作,因此您應該JSON序列化列表:

@using Newtonsoft.Json

var list = @Html.Raw(JsonConvert.SerializeObject(ViewBag.List));
list = list || [];

通常, @Html.Raw(JsonConvert.SerializeObject(obj))是將C#對象obj作為JSON注入視圖的正確方法。 IHtmlString Html.Raw(string)僅返回傳遞的string ,並呈現它而無需任何HTML轉義,這是將對象作為JSON呈現到Javascript代碼塊中時想要的。

暫無
暫無

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

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