Cod*_*ior 0 javascript asp.net-mvc ienumerable razor
在视图中输出IEnumerable简单类型的值.
我有一个模型,由控制器传入,包含一组简单值(在本例中为int).我想将它输出到视图中的JavaScript块中的变量中.
在不使用大的foreach块并迭代每个项目然后找出逗号的情况下,输出值的方式类似于下面的语句.
var packageSummaryViewModel = new PackageSummaryViewModel([1,2,3,4,5,6,7]);
Run Code Online (Sandbox Code Playgroud)
目前正是这样:
var packageSummaryViewModel = new PackageSummaryViewModel(@sensorIds);
Run Code Online (Sandbox Code Playgroud)
var packageSummaryViewModel = new PackageSummaryViewModel(System.Int32[]);
Run Code Online (Sandbox Code Playgroud)
我这样做的方法是使用JSON序列化程序,如JSON.NET.JSON代表JavaScript Object Notation,因此使用JSON序列化程序将C#/ .NET对象转换为Javascript对象是很自然的.
@using Newtonsoft.Json
@model MyNamespace.MyObject
var myProperty = @Html.Raw(JsonConvert.SerializeObject(Model.MyProperty));
Run Code Online (Sandbox Code Playgroud)
如果Model.MyProperty是List<int>包含整数1, 2, 3,Razor将呈现如下:
var myProperty = [1,2,3];
Run Code Online (Sandbox Code Playgroud)
If Model.MyProperty是以下类的实例
class C
{
public string X { get; set; }
public double Y { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
与X设置为apple和Y设置为0.5,剃须刀将呈现此如下:
var myProperty = {"X":"apple","Y":0.5};
Run Code Online (Sandbox Code Playgroud)
关键是这种方法适用于您可能作为模型(或模型的一部分)传递的任何JSON可序列化的C#/ .NET对象.