当前位置:  开发笔记 > 编程语言 > 正文

ASP.Net MVC正在加载进度指示器

如何解决《ASP.NetMVC正在加载进度指示器》经验,为你挑选了1个好方法。

我有一个MVC控制器,它运行一个进程,设置一些View Data,然后在View中将这些数据的结果返回给用户.处理时间取决于正在处理的数据量.我需要一个很好的方法在进程运行时在View中显示动画.gif文件,让用户知道某些事情正在发生.

我查看了各种AJAX方法和部分视图,但仍然无法找到实现此目的的好方法.我真正希望能做的是在OnActionExecuting事件期间返回一个View或Partial View的ActionFilter,它会显示这个动画.gif,然后一旦Controller完成处理并返回ViewData,视图或局部视图与实际的View可以显示数据.

似乎jQuery能够提供一种很好的异步方式来在后台调用控制器动作然后渲染View.任何帮助,将不胜感激.



1> Tim Scott..:

在你的控制器中:

public JsonResult GetSomething(int id)
{
    return Json(service.GetSomething(id));
}

在视图中(javascript,使用JQuery):

$('#someLink').click(function()
{
    var action = '<%=Html.ResolveUrl("~/MyController.mvc/GetSomething/")%>' + $('#someId').val() + '?x=' + new Date().getTime();
    $('#loading').show()
    $.getJSON(action, null, function(something) 
    {
        do stuff with something
        $('#loading').hide()
    });
});

请注意,这假设一条路线在行动后出现'id'.该操作的'x'参数是在IE中击败激进的缓存.

在视图(标记)中:

 

在这里获取装载机GIF .

另请注意,您不必使用Json执行此操作.如果您愿意,可以从控制器操作中获取HTML或XML等其他内容.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有