0

我正在调用一个位于不同位置(另一个控制器)的模式对话框,进入当前页面。这个模态对话框有一个Apply按钮,它应该从模态对话框的网格中获取一些数据,并让自己关闭,然后将这些数据填充到当前页面的某个位置。这个模态对话框的编写方式是,在Apply单击按钮后,它会重定向到某个控制器的操作方法。

但是,从我当前的页面中,我应该从网格中获取数据并将其填充到当前页面并关闭模式对话框。不需要任何重定向。

因此,为此,我在按钮事件的return false末尾添加了一个:clickApply

$("body").on("click", "#Apply", function () {

    if(true)  // do something 
    else  // do something else 

    return false; // this is not being effective
});

模态对话框调用了控制器方法,即使在当前页面中$.post执行之后也会无意中调用该方法。return false在实际的模态对话框(实际上是部分视图)定义中可以找到以下代码:

$("body").on("click", "#Apply", function () {

    if(true)  //do something  
    else  // do something else 

    $.post("/ControllerName/ActionMethod", { _someData: someData}, function(data) {
    if (data == "True") { // this particular action method is returning a bool, hence they are checking it like this!
        window.location.href = '@Url.Action("Index", "SomeOtherController")';
    }
});

我也试过event.preventDefault()了,但也没有用。实际上return false只是打电话event.preventDefault()event.stopPropagation()正如我刚刚发现的那样。

在这种情况下如何防止被重定向?

4

0 回答 0