AJAX不适用于MVC页面

时间:2012-07-04 01:45:17

标签: asp.net-mvc-3 asp.net-mvc-ajax

我正在使用带Razor的MVC3。我有一个想要使用AJAX加载的Action。我正在使用jQuery UIblock插件http://jquery.malsup.com/block/#向用户显示一些等待图像。

与行动相对应的视图如下所示:

@using (Ajax.BeginForm("Search", "Home", new AjaxOptions() { HttpMethod = "GET", OnBegin = "BlockUI", OnComplete = "UnBlockUI", UpdateTargetId = "page" }))
{
...................
}

Javascript代码如下所示:

<script type="text/javascript">
function BlockUI() {
    $.blockUI({ message: "<img src='@Url.Content("~/Content/images/loading.gif")' />" });
}

function UnBlockUI() {
    $.unblockUI({ message: "Done....." });
} 

现在我使用链接

重定向到Action
location.href = '@Url.Content("~/Home/Search/")';

加载搜索视图时,我看不到任何Div显示正在加载图片。

同样的事情是在其他页面上工作,唯一的区别是在其他页面上,Image正在进行 POSTBACK

此外,所有Ajax POST 操作都在运行,但不是 GET

搜索页面有什么问题?

感谢。

1 个答案:

答案 0 :(得分:0)

  

现在我使用链接

重定向到Action      

location.href ='@ Url.Content(“〜/ Home / Search /”)';

此处的关键字是我正在重定向。它不是我正在发送一个AJAX请求。重定向时,浏览器只会停止在当前页面上运行任何脚本并重定向到目标位置。您订阅的OnBeginOnComplete方法在重定向时永远不会触发,这就是您没有看到任何blockUI的原因。