任务
在 View 中输出简单类型 IEnumerable 的值。
条件
我有一个由 Controller 传入的模型,其中包含一个简单值数组(在本例中为 int)。我想将其输出到 View 中 JavaScript block 中的变量中。
标准
无需使用大型 foreach block 并迭代每个项目,然后找出逗号,以类似于下面的语句的方式输出值。
示例
var packageSummaryViewModel = new PackageSummaryViewModel([1,2,3,4,5,6,7]);
目前正在发生的事情是这样的:
查看.cshtml
var packageSummaryViewModel = new PackageSummaryViewModel(@sensorIds);
输出
var packageSummaryViewModel = new PackageSummaryViewModel(System.Int32[]);
最佳答案
我执行此操作的方法是使用 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));
如果Model.MyProperty
是 List<int>
包含整数1, 2, 3
,Razor 将呈现如下:
var myProperty = [1,2,3];
如果Model.MyProperty
是以下类的实例
class C
{
public string X { get; set; }
public double Y { get; set; }
}
与X
设置为apple
和Y
设置为0.5
,Razor 将呈现如下:
var myProperty = {"X":"apple","Y":0.5};
重点是,同样的方法适用于您可能作为模型(或模型的一部分)传递的任何 JSON 可序列化的 C#/.NET 对象。
关于javascript - 如何使用 Razor 将数组中的值输出到 MVC 中的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24101582/