【发布时间】:2017-07-31 05:35:13
【问题描述】:
看起来很简单,但我不知道如何从 razor 代码中调用 javascript 函数。
问题:我需要通过 id 获取表头中列的位置。我正在从我的剃须刀代码中调用 getPosition 函数
<table>
<thead>
<tr>
@foreach (Assessment geAssessment in Model.assessments)
{
<th id=@geAssessment.AssessmentID>@geAssessment.Name</th>
}
</tr>
</thead>
<tbody>
<tr>
@foreach (ShortResult geResult in Model.results)
{
@:{ var i = getPosition(@geResult.assessmentId);}
}
</tr>
</tbody>
</table>
-
我的脚本在同一视图/页面中
<script type="text/javascript"> function getPosition(id) { var c = '#' + id; alert(c); return $c.index(); } $(function () {}); </script>
更新
按照 Max 的建议,我将表格更改如下,这很完美,但现在我如何在 td 中设置值
<tbody>
<tr>
@{
var index = 4; //start index of assessments will be 4
foreach(Assessment geAssessment in Model.assessments)
{
<td>
@foreach (ShortResult geResult in Model.results)
{
if(geResult.StudentID == geStudent.studentid)
{
@:
<script>
{
var assessmentIndex = getPosition(@geResult.assessmentId);
@*if (assessmentIndex == @index) {
geResult.ResultValue
}*@
}
</script>
}
}
</td>
index++;
}
}
</tr>
</tbody>
现在让我解释一下发生了什么..
- 我想根据模型中的评估数量连续添加 x 个 tds
-
对于每个 td,我检查我是否有带有此特定评估 ID 的结果,如果是,我想在 td 中打印它。这里有一些语法错误:
if (assessmentIndex == @index) { geResult.ResultValue }
【问题讨论】:
标签: javascript c# jquery asp.net-mvc razor