我正在调用一个位于不同位置(另一个控制器)的模式对话框,进入当前页面。这个模态对话框有一个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()
正如我刚刚发现的那样。
在这种情况下如何防止被重定向?