【问题标题】:Interrupting calling data-url-action in Razor View from javascript在 Razor 视图中从 javascript 中断调用 data-url-action
【发布时间】:2018-02-23 07:32:34
【问题描述】:

在应用程序中,我们通过将动作名称和控制器名称放在 Razor 视图的 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();

调用上述函数并不能解决问题。

我正在寻找通用解决方案,我无法对视图进行数百次更改 - 这就是我想通过脚本解决它的原因。

【问题讨论】:

  • 不太清楚您是如何使用 js 在按钮中实现回发行为的,但您是否尝试过添加 returnreturn false 来防止 js 中的回发?
  • 在 Razor 重定向之前调用来自 JavaScript 的事件处理程序。很遗憾,退货并没有解决问题。

标签: javascript c# asp.net-mvc visual-studio razor


【解决方案1】:

您可以尝试使用 jquery event.stopPropagation()(假设您使用的是 jquery)。

更多详情: https://api.jquery.com/event.stoppropagation/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 2017-07-13
    • 2019-09-24
    相关资源
    最近更新 更多