我有一个在视图中使用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代码块中时想要的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句