[英]Using javascript/jquery from within razor code
似乎很簡單,但我無法弄清楚如何從剃刀代碼中調用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>
UPDATE
正如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>
現在讓我解釋一下發生了什么..
對於每個td,我檢查是否有帶有此特定評估id的結果,如果是,我想在td中打印它。.此處存在一些語法錯誤:
if (assessmentIndex == @index) { geResult.ResultValue }
具有getPosition函數的腳本必須位於調用上方。 @之后:您必須使用指令,否則將其視為文本。 您的代碼必須看起來像:
<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>
嗨,您不需要@:語法,您可以直接使用它,因此現在您的代碼看起來像。
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.