Saa*_*per 14 asp.net-mvc indicator
我有一个MVC控制器,它运行一个进程,设置一些View Data,然后在View中将这些数据的结果返回给用户.处理时间取决于正在处理的数据量.我需要一个很好的方法在进程运行时在View中显示动画.gif文件,让用户知道某些事情正在发生.
我查看了各种AJAX方法和部分视图,但仍然无法找到实现此目的的好方法.我真正希望能做的是在OnActionExecuting事件期间返回一个View或Partial View的ActionFilter,它会显示这个动画.gif,然后一旦Controller完成处理并返回ViewData,视图或局部视图与实际的View可以显示数据.
似乎jQuery能够提供一种很好的异步方式来在后台调用控制器动作然后渲染View.任何帮助,将不胜感激.
Tim*_*ott 25
在你的控制器中:
public JsonResult GetSomething(int id)
{
return Json(service.GetSomething(id));
}
Run Code Online (Sandbox Code Playgroud)
在视图中(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()
});
});
Run Code Online (Sandbox Code Playgroud)
请注意,这假设一条路线在行动后出现'id'.该操作的'x'参数是在IE中击败激进的缓存.
在视图(标记)中:
<img id="loading" src="images/ajax-loader.gif" alt=""/>
<!-- use a css stlye to make display:none -->
Run Code Online (Sandbox Code Playgroud)
在这里获取装载机GIF .
另请注意,您不必使用Json执行此操作.如果您愿意,可以从控制器操作中获取HTML或XML等其他内容.
| 归档时间: |
|
| 查看次数: |
30048 次 |
| 最近记录: |