您好,我的 MVC 3 应用程序中有一个 Razor View ,使用 @model IList<TrackerModel>
IList<TrackerModel>
正在从我的 Controller 中的操作方法传递到 View 。
顾名思义,它是一个 TrackerModels
的列表。 .
我想将此列表传递给 View 底部的 javascript block 。
通过 foreach 循环运行列表,以便每个模型都使用特定的函数。 例如。
foreach(var mod in IList<TrackerModel>)
{
LoadAttachments();
}
(我知道上面是错误的,但你明白了) 这可以做到吗?
@foreach(var mod in Model)
{
LoadAttachments(@Newtonsoft.Json.JsonConvert.SerializeObject(mod));
}
尝试了上述建议,但出现以下错误。 @foreach = 条件编译已关闭?
var = 期望的表达式?
in = 预期; ?
LoadAttachments = 当前上下文中不存在名称“LoadAttachments”?
@Newtonsoft = 条件编译已关闭?
最佳答案
如果您想采用这种方法(而不是让 javascript 回调到专用的 Web 服务),您将需要将模型渲染为 javascript 可以使用的内容,例如 json 数组。
例如在您的 View 中
<script>
@foreach(var mod in Model)
{
@:javascriptFunc(@Newtonsoft.Json.JsonConvert.SerializeObject(mod));
}
</script>
这将调用您的javascriptFunc
对于您 IList<TrackerModel>
中的每一项。每个TrackerModel
使用 Newtonsfot.Json 进行序列化,Mvc 应该自动包含它,但如果它不在 Mvc 3 中,您可以通过 nuget 添加它:https://www.nuget.org/packages/Newtonsoft.Json
关于javascript - 如何在 JavaScript 中使用带有 ILIST<models> 的 foreach 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27407091/