我正在调用一个位于不同位置(另一个控制器)的模态对话框,进入当前页面。这个模态对话框有一个Apply
按钮,它应该从模态对话框中的网格中获取一些数据,让它自己关闭,然后将这些数据填充到当前页面的某个位置。此模式对话框的编写方式是在单击Apply
按钮后,它会重定向到某个控制器的操作方法。
但是,从我当前的页面,我应该从网格中获取数据并将其填充到当前页面并关闭模式对话框。无需任何重定向。
所以,为此,我在return false
按钮click
事件的末尾添加了Apply
:
$("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()
。
在这种情况下如何防止被重定向?