Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NETMVC的加载页面_Asp.net Mvc - Fatal编程技术网

Asp.net mvc ASP.NETMVC的加载页面

Asp.net mvc ASP.NETMVC的加载页面,asp.net-mvc,Asp.net Mvc,我正在使用ASP.NETMVC创建一个网站,它需要在5-10秒后才能将视图返回给用户。与其让用户盯着glacial进度条看,我想展示一些“请稍候/我们马上回来”的动画gif,让他们感兴趣 有人知道实现这一目标的好方法吗 我找到了答案,但这并不是我所需要的,它使用jQuery在返回视图后获取数据。我想在他们等待视图出现时显示“请稍候” 谢谢我认为您引用的解决方案对您有用。您只需要让您的初始控制器操作立即返回please wait消息,然后让AJAX调用根据您的处理实际检索内容。如果请求真的需要5-

我正在使用ASP.NETMVC创建一个网站,它需要在5-10秒后才能将视图返回给用户。与其让用户盯着glacial进度条看,我想展示一些“请稍候/我们马上回来”的动画gif,让他们感兴趣

有人知道实现这一目标的好方法吗

我找到了答案,但这并不是我所需要的,它使用jQuery在返回视图后获取数据。我想在他们等待视图出现时显示“请稍候”


谢谢

我认为您引用的解决方案对您有用。您只需要让您的初始控制器操作立即返回please wait消息,然后让AJAX调用根据您的处理实际检索内容。如果请求真的需要5-10秒,您可能还需要调整AJAX请求的超时值,以便它能够完成。我不知道默认超时是多少,但可能比您需要的要少

编辑示例:

查看代码:

<script type="text/javascript">
     $(document).ready( function() {
         $.ajax({
            type: "POST",
            url: '<$= Url.Action("GetSlowData","Controller") %>',
            data: 'id=<%= ViewData["modelID"] %>',
            timeout: 15000,  // wait upto 15 secs
            success: function(content){
               $("#container").html(content);
            }
         });
     });
</script>

...

<div id="#container">
   Please wait while I retrieve the data.
</div>

您还需要一个局部视图ViewUserControl,用于获取模型并渲染模型的视图。请注意,这不是完整的-您需要添加错误处理,您可能想考虑如果没有启用JavaScript会发生什么,… 我认为您引用的解决方案对您有用。您只需要让您的初始控制器操作立即返回please wait消息,然后让AJAX调用根据您的处理实际检索内容。如果请求真的需要5-10秒,您可能还需要调整AJAX请求的超时值,以便它能够完成。我不知道默认超时是多少,但可能比您需要的要少

编辑示例:

查看代码:

<script type="text/javascript">
     $(document).ready( function() {
         $.ajax({
            type: "POST",
            url: '<$= Url.Action("GetSlowData","Controller") %>',
            data: 'id=<%= ViewData["modelID"] %>',
            timeout: 15000,  // wait upto 15 secs
            success: function(content){
               $("#container").html(content);
            }
         });
     });
</script>

...

<div id="#container">
   Please wait while I retrieve the data.
</div>

您还需要一个局部视图ViewUserControl,用于获取模型并渲染模型的视图。请注意,这不是完整的-您需要添加错误处理,您可能想考虑如果没有启用JavaScript会发生什么,… 我不这么认为。另一种解决方案要求我返回数据,然后使用jQuery用该数据更新视图。我想返回一个视图,即返回ViewMySlowData,myViewData非常感谢,通过一个示例更清楚。我不知道您可以将部分视图渲染为现有视图,即$container.htmlcontent;但是我想如果部分视图只是返回Html,为什么您不能呢!再次感谢你,我不这么认为。另一种解决方案要求我返回数据,然后使用jQuery用该数据更新视图。我想返回一个视图,即返回ViewMySlowData,myViewData非常感谢,通过一个示例更清楚。我不知道您可以将部分视图渲染为现有视图,即$container.htmlcontent;但是我想如果部分视图只是返回Html,为什么您不能呢!再次感谢。如果不使用AJAX,我看不到任何方法可以做到这一点-我知道这不是您想要听到的,但是在服务器上完成处理之前,ASP.Net不会发送响应的任何部分。而jQuery AJAX将能够在响应发送后为您执行此操作。如果不使用AJAX,我看不到任何执行此操作的方法-我知道这不是您想要听到的,但在服务器上完成处理之前,ASP.Net不会发送响应的任何部分。而jqueryajax将能够在发送响应后为您完成这项工作。