簡體   English   中英

從剃刀代碼中使用javascript / jquery

[英]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>

現在讓我解釋一下發生了什么..

  • 我想根據模型中的評估數量連續添加x tds
  • 對於每個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM