gpt4 book ai didi

asp.net-mvc - ASP.Net MVC 加载进度指示器

转载 作者:行者123 更新时间:2023-12-03 21:23:24 25 4
gpt4 key购买 nike

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

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

jQuery 似乎也能够提供一种很好的异步方式来在后台调用 Controller 操作,然后呈现 View 。任何帮助,将不胜感激。

最佳答案

在您的 Controller 中:

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

在 View 中(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”在行动之后出现的路线。 Action 中的“x”参数是为了打败 IE 中的主动缓存。

在 View (标记)中:
<img id="loading" src="images/ajax-loader.gif" alt=""/> 
<!-- use a css stlye to make display:none -->

获取加载器 gif here .

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

关于asp.net-mvc - ASP.Net MVC 加载进度指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/287014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com