c# – 如何在ASP.NET MVC中实现插页式“加载…”页面?

c# – 如何在ASP.NET MVC中实现插页式“加载…”页面?,第1张

概述我有一个SearchController,其动作可以执行一些长时间运行的搜索并返回结果页面.搜索可能需要1到60秒.搜索的URL是以下格式的HTTP GET请求:http:// localhost / Search?my = query& is = fancy 我正在寻找的体验类似于那里的许多旅游网站.我想展示一个中间的“正在加载……”页面,理想情况是: >用户可以重新加载页面而无需重新启动搜索 我有一个SearchController,其动作可以执行一些长时间运行的搜索并返回结果页面.搜索可能需要1到60秒.搜索的URL是以下格式的http GET请求:http:// localhost / Search?my = query& is = fancy

我正在寻找的体验类似于那里的许多旅游网站.我想展示一个中间的“正在加载……”页面,理想情况是:

>用户可以重新加载页面而无需重新启动搜索
>完成后端搜索后,用户将重定向到结果
>禁用JavaScript的浏览器的体验会降低
>后退按钮/浏览器历史记录不应包含此插页式页面.
>在短搜索(1秒)的情况下,它对获得结果或体验的时间没有显着影响(显着丑陋的页面闪烁,无论如何)

这些都是不错的选择.我对所有想法持开放态度!谢谢.

解决方法 您可以通过以下方式执行此 *** 作:

>使用AJAX执行搜索请求(GET URL)
>搜索网址不会返回结果,但会返回一些Json或XML内容以及实际结果的网址
>客户端页面在等待AJAX​​调用完成时显示“正在加载…”消息
>完成后,客户端页面会重定向到结果页面.

使用jquery的示例:

<div ID="loading" >  Loading...</div><a href="JavaScript:voID(0);"   onclick="searchFor('something')">Search for something</a><script type="text/JavaScript">  function searchFor(what) {    $('#loading').fadeIn();    $.AJAX({       type: 'GET',url: 'search?query=' + what,success: function(data) {         location.href = data.ResultsUrl;       }     });          }</script>

(编辑:)

控制器将是这样的:

public class SearchController {  public ActionResult query(string q)   {    Session("searchresults") = performSearch();    return Json(new { ResultsUrl = 'Results'});  }  public ActionResult Results()  {    return VIEw(Session("searchresults"));  }}

考虑它伪代码:我实际上没有测试它.

总结

以上是内存溢出为你收集整理的c# – 如何在ASP.NET MVC中实现插页式“加载…”页面?全部内容,希望文章能够帮你解决c# – 如何在ASP.NET MVC中实现插页式“加载…”页面?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1263262.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存