Asp.net Razor,语法错误 – onclick事件参数

前端之家收集整理的这篇文章主要介绍了Asp.net Razor,语法错误 – onclick事件参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. <input type="button" value="Delete" onclick="deleteMember(@Model.ID,'@ViewBag.returnUrl')"/>

代码有4个错误,2个语法错误和2个Unterminated字符串常量.

我该怎么做才能解决这些错误

解决方法

您可以在Html.Raw调用中将其分解:
  1. <input type="button"
  2. value="Delete"
  3. onclick="@(Html.Raw(String.Format("deleteMember({0},'{1}')",Model.ID,Html.Encode(ViewBag.returnUrl)
  4. )))"
  5. />

或者首先将其分配给字符串,然后在属性中引用该变量.

  1. @{
  2. String onclick = String.Format("deleteMember({0},Html.Encode(ViewBag.returnUrl));
  3. }
  4. <input type="button" value="delete" onclick="@onclick" />

第三种选择是分开关注;保持标记和脚本分开. Neil击败了我,但有点像:

  1. <input type="button" value="delete"
  2. data-task="delete" data-id="@Model.ID" data-returnurl="@ViewBag.returnUrl" />
  3.  
  4. <!-- .... -->
  5.  
  6. <script>
  7. var buttons = document.getElementsByTagName('INPUT');
  8. for (var b = 0; b < buttons.length; b++){
  9. if (buttons[b].type != 'button') continue;
  10. switch (buttons[b].getAttribute('data-task') || ''){
  11. case 'delete':
  12. // read data-id & data-returnurl. Do something with them,and
  13. // move on.
  14. break;
  15.  
  16. // other actions
  17. case 'add':
  18. case 'update':
  19. default:
  20. break;
  21. }
  22. }
  23. </script>

虽然奇怪的是第一个括号与剃刀混淆(即使它在属性中声明).我自己也不会期待这种行为.

猜你在找的asp.Net相关文章