在应用程序中,我们通过将操作名称和控制器名称放在Razor Views中的data-url-action属性中来处理按钮操作,如下所示:
<button type="button" class="btn" title="Add" data-url-action="@Url.Action("Add", "Home")">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
</button>
它完美无缺,但现在我想允许或不允许从控制器调用该动作。在我的JavaScript中我有功能:
function setButtonsAccessibility(control) {
if (!checkControl(control) {
control.onclick = (function (event) {
debugger;
event.preventDefault();
});
}
}
该函数在调用控制器操作之前捕获onClick事件,但我不知道如何中断它。当我的要求被完整填写时,附加了onclick功能,在这里我想阻止触发操作。
我正在考虑覆盖一些Razor函数,该函数识别单击按钮并将完成的data-url-action同等重定向到指向的动作,但我没有信息如何找到该函数。有没有可能以这种方式解决这个问题,或者可能是更简单的解决方案?
event.preventDefault();
上述调用功能无法解决问题。
我正在寻找通用解决方案,我无法对视图进行数百次更改 - 这就是我想通过脚本解决问题的原因。
答案 0 :(得分:1)
您可以尝试使用 jquery event.stopPropagation()(假设您正在使用jquery)。