在Razor中初始化JavaScript数组
Initializing a JavaScript array in Razor
我有一个ASP.NET MVC应用程序,它在视图中使用Razor。我正在我的控制器中构建一个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代码块中时所需要的。
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 将Javascript数组发送到控制器ASP.NET MVC
- JavaScript数组包含一个值
- 将JavaScript数组传递给函数
- javascript:数组循环
- 将数据存储在javascript数组中以供进一步使用
- 在Javascript数组中查找绝对最大值
- JavaScript数组优化以提高性能
- 在javascript数组中分散数字
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- Javascript数组动态
- javascript数组元素是否知道其封闭数组
- 将 JSON 数组解析为 JavaScript 数组
- 将Transform和Instance Variable转换为对象的JavaScript数组
- 使用Web Html表单创建Javascript数组
- 从重复的javascript数组结果集中只获取一行
- 如何为Javascript数组()的使用准备PHP变量
- Javascript数组和函数
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)