ASP.NET MVC將模型數據傳給JavaScript函數問題

使用APS.NET MVC編寫頁面,在Html中爲javascript函數傳入的參數爲動態數據時,要注意將動態參數放在引號中,如下面代碼中超鏈接的add函數所示。

<tbody>
  @{ int i = 1;}
  @foreach (Permission p in Model)
  {
    <tr>
      <td><input type="checkbox" data-code="@p.Code" data-desc="@p.Description"/></td>
       <td>@(i++)</td>
       <td>@p.Code</td>
       <td>@p.Description</td>
       <td><a onclick="add('@p.Code', '@p.Description');" style="cursor:pointer;">導入</a></td>
     </tr>
  }
</tbody>

原因如下:
如果直接將模型數據傳入,那麼最終的顯示是這些數據被當做了變量名,會發生報錯,頁面源碼如下。

<tr>
  <td><input type="checkbox" data-code="Permission-AddAll" data-desc="添加選擇的權限到系統"/></td>
  <td>4</td>
  <td>Permission-AddAll</td>
  <td>添加選擇的權限到系統</td>
  <td><a onclick="add(Permission-AddAll, 添加選擇的權限到系統);" style="cursor:pointer;">導入</a></td>
</tr>

而用引號引起來後的頁面源碼如下:

<tr>
  <td><input type="checkbox" data-code="Permission-AddAll" data-desc="添加選擇的權限到系統"/></td>
  <td>4</td>
  <td>Permission-AddAll</td>
  <td>添加選擇的權限到系統</td>
  <td><a onclick="add('Permission-AddAll', '添加選擇的權限到系統');" style="cursor:pointer;">導入</a></td>
</tr>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章