从剃刀代码中使用javascript/jquery [英] Using javascript/jquery from within razor code
问题描述
这似乎很简单,但我无法弄清楚如何从剃须刀代码中调用javascript函数.
It seems simple but i cant figure out how to call javascript function from within razor code.
问题:我需要在表头中获得传递ID的列的位置.我正在从我的剃须刀代码中调用 getPosition 函数
Problem: I need to get the position of a column in my table header with the id passed.. I am calling getPosition function from within my razor code
<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>
-
我的脚本在同一视图/页面
My script in the same view/page
<script type="text/javascript"> function getPosition(id) { var c = '#' + id; alert(c); return $c.index(); } $(function () {}); </script>
更新
按照马克斯的建议,我如下更改了表格,这很完美,但是现在我该如何在td中设置一个值
As suggested by Max, i changed my table as follows, which is perfect but now how can i set a value in the 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>
现在让我解释一下发生了什么..
Now let me explain whats going on ..
- 我想根据模型中的评估数量连续添加x个tds
-
对于每个td,我都会检查是否具有此特定的evaluationid的结果,如果是,我想在td中打印它..此处存在一些语法错误:
- i want to add x tds in a row based on the number of assessments in my model
for each td i check if i have a result with this particular assessmentid, if yes i want to print it in the td..there is some syntax error here:
if (assessmentIndex == @index) { geResult.ResultValue }
推荐答案
具有getPosition函数的脚本必须位于您的调用上方. @之后:您必须使用指令,否则将其视为文本.您的代码必须类似于:
Your script with getPosition function has to be above your call. After @: you have to use directive otherwise it's considered like a text. Your code has to look like:
<script type="text/javascript">
function getPosition(id) {
var c = '#' + id;
alert(c);
return $c.index();
}
$(function () {});
</script>
<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)
{
@: <script>{ var i = getPosition(@geResult.assessmentId);}</script>
}
</tr>
</tbody>
</table>
这篇关于从剃刀代码中使用javascript/jquery的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!