ASP.NET MVC 5 局部视图不支持异步问题

       [ChildActionOnly]
        public async Task<ActionResult> TopLeftFlowPartialView()
        {
            var user = Session[Constants.SESSION] as UserSessionViewModel;
            var hotelInventory = await _homeService.GetHotelInventoryAsync(user.HotelCd);
            return PartialView("_TopLeftFlowPartialView", hotelInventory.Data);
        }

页面

@Html.Action("TopLeftNazhPartialView", "Home")

运行程序有时会抛出如下异常:

异常详细信息: System.InvalidOperationException: HttpServerUtility.Execute 在等待异步操作完成时被阻止。

“System.Web.HttpException”类型的异常在 System.Web.dll 中发生,但未在用户代码中进行处理

其他信息: 执行处理程序“System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper”的子请求时出错。

google 一番,居然 MVC5  不支持异步,得在MVC6 也就是现在的 ASP.NET CORE 1.0 后才支持异步的局部视图。

又不想把异步改成同步方法,所以只能改成 AJAX 来做了

$(‘#xx‘).load(‘@Url.Action("TopLeftFlowPartialView","Home")‘);

REFER:

http://stackoverflow.com/questions/24072720/async-partialview-causes-httpserverutility-execute-blocked-exception

http://www.cnblogs.com/dunitian/p/5481138.html

https://q.cnblogs.com/q/81685/

时间: 2024-11-05 04:47:56

ASP.NET MVC 5 局部视图不支持异步问题的相关文章

[转]深入ASP.NET MVC之九:Ajax支持

本文转自:http://www.cnblogs.com/yinzixin/archive/2012/12/22/2824384.html 目前前端页面和服务端进行Ajax交互大多采用的都是jQuery, ASP.NET MVC提供了一些方法使得这个过程变得更加容易.常见的Ajax应用场景有两种,一个是点击一个链接,然后局部加载一些内容,可以是html片段,也可能是json数据,然后通过前端js处理之后显示:另一个是异步提交表单.这些帮助方法都是位于AjaxExtensions种的扩展方法.先看第

ASP.NET MVC 此安装不支持该项目类型解决方法

http://www.cnblogs.com/younggun/archive/2011/03/03/1969498.html ASP.NET MVC  此安装不支持该项目类型解决方法 打开 .csproject 文件  在  <ProjectTypeGuids>中的三个GUID的前两个修改为: {F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21}; 后面还有一个 GUID 是你项目的GUID

ASP.NET MVC在服务端把异步上传的图片裁剪成不同尺寸分别保存,并设置上传目录的尺寸限制

我曾经试过使用JSAjaxFileUploader插件来把文件.照片以异步的方式上传,就像"MVC文件图片ajax上传轻量级解决方案,使用客户端JSAjaxFileUploader插件01-单文件上传"中说的,这种方法足够轻.足够好.但今天,要在前面的基础上再增加2个需求: 1.异步判断上传的图片是否超过最大限制2.把上传的图片裁剪成大中小3张图片,分别保存,删除的时候一块被删除 上传图片如果超出最大尺寸限制,终止上传,并报错误信息. 前台上传图片,显示缩略图. 在项目根目录下的指定文

ASP.NET MVC 使用jquery.form.js 异步上传 在IE下返回值被变为下载的解决办法

错误记录: <script type="text/javascript"> $(function () { $(document).off("ajaxSend"); //异步上传 $("#Submit").click(function () { if ($("#selectFileButton").val() == "") { return false; } $("#fileForm&

ASP.NET MVC应用程序中支持用户使用腾讯QQ和微信以及新浪微博的第三方登录

什么是第三方授权登录,就是一些大家都会有的帐号如QQ.微信.淘宝.微博等账户.通过那些巨头公司提供的api直接实现登录. 当然,我们是不可能得到你的用户名和密码的.不了解的人,可能会存在这个疑虑.我们可以通过第三方授权登录得到如昵称.性别.注册地址.年龄.头像等基本信息.当然,我们也可以得到你账户因为的唯一编码,就是OAuthId.什么是OAuth技术?大家自行了解,这里就不细讲了. 准备资料: 各平台相关授权appid以及appkey(新浪为App Secret) 申请地址: 新浪 申请入口

ASP.NET MVC中使用异步控制器

线程池 一直想把项目改写成异步,但是ASP.NETMVC3下写的过于繁琐,.NET 4.5与ASP.NET MVC下代码写起来就比较简单了, MS好像也一直喜欢这样搞,每一个成熟的东西,都要演变好几个版本,才能趋于规范. ASP.NET MVC 中为什么需要使用异步呢,IIS有一个线程池来处理用户的请求,当一个新的请求过来时,将调度池中的线程以处理该请求,然而,但并发量很高的情况下,池中的线程已经不能够满足这么多的请求时候,池中的每一个线程都处于忙的状态则在处理请求时将阻塞处理请求的线程,并且该

转载:ASP.NET MVC扩展自定义视图引擎支持多模板&amp;动态换肤skins机制

ASP.NET mvc的razor视图引擎是一个非常好的.NET MVC框架内置的视图引擎.一般情况我们使用.NET MVC框架为我们提供的这个Razor视图引擎就足够了.但是有时我们想在我们的项目支持多模板&skins机制,比如我们可能会有多套的模板,也就是多个View风格,而我们只需要改一下配置文件就可以轻松的改变页面的风格和模板.实现这个功能有两种方式: 一.使用接口IViewEngine自己完成一个类似Razor视图引擎的功能. 二.继承类RazorViewEngine类,重写它的一些方

在 ASP.NET MVC 中使用异步控制器

线程池 一直想把项目改写成异步,但是ASP.NETMVC3下写的过于繁琐,.NET 4.5与ASP.NET MVC下代码写起来就比较简单了, MS好像也一直喜欢这样搞,每一个成熟的东西,都要演变好几个版本,才能趋于规范. ASP.NET MVC 中为什么需要使用异步呢,IIS有一个线程池来处理用户的请求,当一个新的请求过来时,将调度池中的线程以处理该请求,然而,但并发量很高的情况下,池中的线程已经不能够满足这么多的请求时候,池中的每一个线程都处于忙的状态则在处理请求时将阻塞处理请求的线程,并且该

ASP.NET MVC EF 中使用异步控制器

最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精   为什么使用异步操作/线程池 ASP.NET MVC 中为什么需要使用异步呢,IIS有一个线程池来处理用户的请求,当一个新的请求过来时,将调度池中的线程以处理该请求,然而,但并发量很高的情况下,池中的线程已经不能够满足这么多的请求时候,池中的每一个线程都处于忙的状态则在处理请求时将阻塞处理请求的线程,并且该线程不能对另一个请求提供服务,如果请求队列已满