加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 22:25:31 所属栏目:asp.Net 来源:网络整理
导读:input type="button" value="Delete" onclick="deleteMember(@Model.ID,'@ViewBag.returnUrl')"/ 该代码有4个错误,2个语法错误和2个Unterminated字符串常量. 我该怎么做才能解决这些错误? 解决方法 您可以在Html.Raw调用中将其分解: input type="button" v
<input type="button" value="Delete" onclick="deleteMember(@Model.ID,'@ViewBag.returnUrl')"/>

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

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

解决方法

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

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

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

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

<input type="button" value="delete"
    data-task="delete" data-id="@Model.ID" data-returnurl="@ViewBag.returnUrl" />

<!-- .... -->

<script>
  var buttons = document.getElementsByTagName('INPUT');
  for (var b = 0; b < buttons.length; b++){
    if (buttons[b].type != 'button') continue;
    switch (buttons[b].getAttribute('data-task') || ''){
      case 'delete':
        // read data-id & data-returnurl. Do something with them,and
        // move on.
        break;

      // other actions
      case 'add':
      case 'update':
      default:
        break;
    }
  }
</script>

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读