【发布时间】:2015-06-21 12:36:48
【问题描述】:
我有一个.cshtml 文件,我正在使用该模型:
@model IEnumerable<WebApplicationMVCTest.Models.Test>
模型包含参数Date(以及其他参数)。我在创建表时访问此值:
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.SiteID)
</td>
<td>
@Html.DisplayFor(modelItem => item.Date)
</td>
...
我的代码 NotTested 中有一个函数,我想将 item.Date 值作为参数之一传递给函数:
<script>
document.onload = NotTested("Site 001", item.Date);
function NotTested(SiteId, TestDate) { ... }
</script>
问题有两个方面。 1) 我知道 Date 是此视图中模型的一部分,因此在调用函数时它存在 onload,但是 2) model 在代码的 <script> 部分中脱离上下文。
我知道 item 不存在 onload 因为这对于 for 循环来说只是暂时的。我刚刚使用了item.Date 作为占位符参数。
调用函数时如何访问它?
【问题讨论】:
-
您要为模型中的每个项目调用此函数吗?
-
没有。只有日期项,并且仅在表单加载时
-
我的意思是你有一个循环 - 所以你想为集合中的每个项目传递
Date属性吗? -
如果是这样,有很多方法可以做到这一点 - 例如将模型分配给一个javascript变量=引用this answer,但最简单的方法是添加一个类名(比如)
<td class="date">@Html.DisplayFor(modelItem => item.Date)</td>元素并使用$('.date').each(function() { NotTested("Site 001", $(this).text()) }); -
Date项目实际上是相同的,因为我正在加载模型。它是“其他”参数在循环遍历表格时发生变化。这就是为什么我可以称之为onload并知道Date是一样的。
标签: c# asp.net-mvc