使用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>