Html.ActionLink能否同时添加CSS类和return confirm确认提示?
问题根因
你遇到的参数报错是因为对ActionLink方法的重载参数理解有误:你调用的重载里,第5个参数是唯一的htmlAttributes匿名对象参数,所有需要添加到A标签上的HTML属性(包括class、onclick、id、title等)都需要放在同一个匿名对象中,不需要拆分多个对象传入。
正确行内写法
直接把@class和onclick属性写到同一个匿名对象里即可,示例代码如下:
@Html.ActionLink("Delete", "Delete", "NWS", new { recordId = Model.Id }, new { @class = "btn btn-danger configDelete", onclick = "return confirm('Are you sure you want to delete this config?')" })
更易维护的替代方案
如果不想把JS逻辑写在行内属性里,可以通过事件绑定的方式实现,代码更整洁也方便批量管理:
- 先给
ActionLink只加CSS类标记:
@Html.ActionLink("Delete", "Delete", "NWS", new { recordId = Model.Id }, new { @class = "btn btn-danger configDelete" })
- 在页面底部加JS绑定确认逻辑(示例用jQuery,原生JS写法同理):
$('.configDelete').on('click', function (e) { // 点击时触发确认,用户点取消就阻止跳转 if (!confirm('Are you sure you want to delete this config?')) { e.preventDefault(); } })
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

