其中,我们需要重点关注以下两个目录: MvcControllerWithContext:该目录下的模板为添加控制器时,选择基架项为【包含视图的 MVC5 控制器(使用Entity Framework)】...MvcView:该目录下的模板为添加控制器时,选择基架项为【包含视图的 MVC5 控制器(使用Entity Framework)】时生成增删改查视图的代码的T4模板。 然后,我们就开始生成之旅。...代码生成 添加控制器,选择代码基架 ? 这里选择【包含视图的MVC5控制器(使用 Entity Framework)】。 添加控制器 ? 个人比较喜欢使用异步控制器操作。...生成的代码 我们先来看看生成的列表代码: // GET: WeiChat_KeyWordTextContent public async TaskActionResult> Index...ActionResult> BatchOperation(string operation, params string[] ids) 而获取批量操作的对象也根据多个主键进行了筛选: var models
这种性能的影响,可以从诸多方面进行优化,比如使用负载均衡的服务器,建立服务器集群等方式,但是这是从硬件配置方面的优化,而在软件开发方面,同样也可以做很多性能方面的优化。...How 在ASP.NET MVC3种,已经提供了AsyncController,可以创建异步的控制器,可那时候需要用到Async和Completed方法对的模式来处理,而现在,我们不需要单独去实现继承自...AsyncController的类,只需要在原有Action方法上加上特定的关键字和返回类型,就可以创建异步的控制器。...Let’s do it 示例使用VS2013创建一个ASP.NET MVC5项目”AsyncExample“(不纠结于设计原则,注意重点) 在Models文件夹中添加一个用户类: namespace...(); return RedirectToAction("List"); } public async TaskActionResult> List
异步代码会花费较少的开销,在低流量情况下,对性能的影响是可以忽略不计的,但在高流量的情况下,潜在性能的提升是巨大的。...: 方法使用了async关键字,它告诉编译器为方法体生成回调方法,并自动创建返回的TaskActionResult>对象。...将返回类型由ActionResult更改为TaskActionResult>,Task类型表示正在进行的工作会返回T类型的结果。...public async TaskActionResult> Details(int?...程序运行一切正常,但在此控制器中,所有SQL查询都是异步执行的。 当你使用Entity Framework来进行异步编程时要注意: 异步代码不是线程安全的。
前言 总是有很多朋友咨询Magicodes.IE如何基于ASP.NET Core导出Excel,出于从框架的体验和易用性的角度,决定对Excel的导出进行独立封装,以便于大家更易于使用,开箱即用。...注意:Magicodes.IE是从框架的易用性和体验的角度对Excel导出进行了封装,但是希望大家先理解原理后再使用。...")] public async TaskActionResult> ByStream() { //随机生成100条数据...知识点总结 敲黑板,麻烦有空帮点点,为了德玛西亚: ASP.NET Core Web API 中控制器操作的返回类型 | Microsoft Docs Reference https://github.com.../dotnetcore/Magicodes.IE 最后 有兴趣有精力的朋友可以帮忙PR一下单元测试,由于精力有限,先手测了,参考: ASP.NET Core 中的测试控制器逻辑 | Microsoft
这章呢,我们开始讲ASP.NET MVC5中的路由机制,在这之前,先提一下URL(Uniform Resource Locator)-- 统一资源定位符。...构造传出的URL,用来响应控制器操作。 ASP.NET MVC5中有:特性路由和传统路由。 ASP.NET MVC5中的路由机制图解: ?...使用控制器类的一个特性代替每个方法上的所有路由特性。在控制器类上定义路由时,可以使用一个叫做action的特殊路由参数,它可以作为任意操作名称的占位符。...定义可变长路由(任意长度的URL): 作用:能够在一个单一的路由中对任意长度的URL进行路由。...*",action=“^Index$“|”^About$”} ); //只匹配action= Index或者About的路由 约束使用HTTP方法的路由: 目标:对匹配的URL使用的HTTP
它是动态类型,对ViewData的包装 public dynamic ViewBag { get; } 例: 控制器操作中ViewBag.Field 使用@ViewBag.Message TempData...原理: ASP.NET从线程池获得线程处理异步请求,异步调用完后,该线程回到线程池以便可以处理其他请求,同时通知ASP.NET重新抓取一个线程(不一定是处理异步请求的线程)来完成具体的异步操作(输出数据等...使用异步控制器的目的: 异步控制器操作中也要等待任务直至处理完,所以处理速度不比同步方法快,其主要作用是高效地利用服务器资源。...使用异步控制器的情形: 可能引发瓶颈的长操作,网络或I\O密集型操作,可取消长操作的情形。...构建异步控制器: 控制器继承AsyncController,控制器操作返回TaskActionResult>,并用async 修饰。
前言 总是有很多朋友咨询Magicodes.IE如何基于ASP.NET Core导出Excel,出于从框架的体验和易用性的角度,Magicodes.IE决定对Excel的导出进行独立封装,以便于大家更易于使用...注意:Magicodes.IE是从框架的易用性和体验的角度对Excel导出进行了封装,但是希望大家先理解原理后再使用。...")] public async TaskActionResult> ByStream() { //随机生成100条数据...值得注意的是: 使用XlsxFileResult需引用包Magicodes.IE.Excel.AspNetCore XlsxFileResult继承自ActionResult,目前支持字节数组、流和泛型集合为参数的...最后 教程已上传Github,有兴趣有精力的朋友可以帮忙PR一下单元测试,由于精力有限,先手测了,可参考: ASP.NET Core 中的测试控制器逻辑 | Microsoft Docs 写个功能几分钟到十几分钟
过滤器是 ASP.NET MVC 中很重要的一个功能,过滤器(Filters)的出现使得我们可以在ASP.NET MVC程序里更好的控制浏览器请求过来的URL,不是每个请求都会响应内容,只响应特定内容给那些有特定权限的用户...在控制器类中重写方法 特性方法的使用: 作为Controller或Action的特性 在Global中注册为全局过滤器,应用于所有的Controller的Action 注意:如果继承自接口,则需要让类实现...()方法进行重写。...重写方法实现过滤 针对某一控制器进行重写,应用范围为当前控制器下的所有的行为。...异常处理过滤器 异常处理过滤器,用于当发生异常时,进行自定义异步处理,记录日志,跳转页面等。
该书主要分为两部分,ASP.NET MVC 5、ASP.NET WEB API2。本书最大的特点是以面试问答的形式进行展开。通读此书,会帮助你对ASP.NET MVC有更深层次的理解。...Controller Initialization(初始化控制器) - MvcHandler使用ProcessRequest方法开始对ASP.NET MVC pipeline进行实时处理。...Authentication Filter (认证过滤器)是在ASP.NET MVC5中引入的,它先于authorization filter(授权过滤器)执行。它主要用来对用户认证。...在ASP.NET MVC5之前,使用 authorization filter (授权过滤器)对用户进行认证和授权。 Authenticate attribute(认证特性)默认是被用来进行认证....Route constraints(路由约束)是对已定义路由进行一些验证的方式。
HTTP请求进行处理之前对请求进行预处理或IHttpHandler对HTTP请求处理之后进行再次处理。...上图中主要描述ASP.NET运行时对HTTP请求的处理且不涉及太多细节。...Filters 在ASP.NET MVC5中有常用的过滤器有5个:IAuthenticationFilter、IAuthorizationFilter、IActionFilter、IResultFilter...Action执行完毕之后会返回ActionResult类型对象作为对此次请求进行处理的结果,对于不是ActionResult类型的返回值,ASP.NET MVC会将其转换为ActionResult类型...书目推荐 《ASP.NET MVC Interview Questions and Answers Book》 《ASP.NET MVC5框架揭秘》 参考文章 IIS 7.0 的 ASP.NET 应用程序生命周期概述
如何使用文件上传控件 2. 异步控制器 1....异步操作可使用CLR 线程来继续执行。 存在的问题就是,CLR 线程无法返回响应,一旦它完成了异步操作,它会通知Asp.net。...创建异步控制器 在控制器中将基类 UploadController修改为 AsynController。...worker线程会使Action 方法执行 Worker方法在 Task.Factory.StartNew方法的辅助下,开启异步操作 使用async关键字将Action 方法标记为异步方法,由此会保证异步操作一旦开启...实验31——实现对用户有好的URL 1.
使用 SqlServer 分布式缓存 1.1 准备工作,请依照以下步骤实施 1 创建一个 Asp.Net Core MVC 测试项目:Ron.DistributedCacheDemo 2 为了使用 SqlServer...,因为其线程退出导致 Task.Run 未能运行,比如下面的代码 [HttpGet("GetTime")] public async TaskActionResult>...Task 进行异步处理,正确的做法是使用 await this.cache.GetStringAsync("CurrentTime"); 1.6 关于缓存清理方法 ScanForExpiredItemsIfRequired...使用 Redis 分布式缓存 要在 Asp.Net Core 项目中使用 Redis 分布式缓存,需要引用包:Microsoft.Extensions.Caching.Redis,.Net Core 中的...缓存的时候,异步方法中的同步调用会导致 SqlServerCache 无法进行过期扫描 CSRedisCore 此项目是由我的好朋友 nicye 维护,GitHub 仓库地址:访问CSRedisCore
前面两篇文章我们分别讲了MVC下的视图和控制器,这章我们要讲模型(model),这章由于涉及到基架的使用,还有对模型绑定后数据库相关知识,可能会 很抽象,慢慢来吧,↖(^ω^)↗!...新建的ASP.NET MVC5项目会自动包含对实体框架(EF)的引用。...(2)添加基架 --> 包含视图的MVC5 控制器(使用EF) --> 添加: ? (3)在“添加控制器”对话框中,选择模型类、数据上下文类,修改控制器名称。...在sad path中,控制器操作需要重新创建Edit视图,以便用户更改自身产生的错误,而ASP.NET MVC5默认提供了客户端校验,如图所示: ?...ASP.NET MVC通过模型绑定(Model Binding)机制来解析客户端传送过来的数据,解析的工作由DefaultModelBinder类进行处理。
ASP.NET MVC的错误处理应考虑到这几个方面:模型绑定期间发生的错误,未能路由到指定操作,针对控制器的错误处理。...使用配置文件可以帮助我们处理异常,但是不够灵活和全面;使用HandleErrorAttribute、自定义错误过滤器或重写控制器OnException方法只能解决针对控制器的错误,无法解决模型绑定期间发生的错误...2针对控制器的错误处理 2.1使用HandleErrorAttribute修饰控制器或操作。...4实践 4.1使用HandleErrorAttribute注意要对的节进行设置 。.../mvc 6.Dino Esposito著,潘丽臣译,ASP.NET MVC5编程实战 ---------------------------------------------------------
该书主要分为两部分,ASP.NET MVC 5、ASP.NET WEB API2。本书最大的特点是以面试问答的形式进行展开。通读此书,会帮助你对ASP.NET MVC有更深层次的理解。...ASP.NET MVC 提供了一种简单的方式在action执行之前或之后注入一段代码或逻辑,它就是ASP.NET MVC attributes,通过在Controller或者Action上使用Attributes...主要有以下五种类型Filters: Authentication Filters(认证过滤器) 该过滤器是从ASP.NET MVC5中引入的。...用户通过ta的身份进行认证,通过给用户分配角色来进行授权。 ? ASP.NET 提供了IPrincipal 和IIdentity接口来表示用户的身份和角色。...该过滤器基于AuthorizeAttribute特性类,可以通过继承该特性并重载OnAuthorization()方法来对授权过滤器进行自定义。
ActionResult类 ActionResult类是最常用的返回值类型。基本沿用了之前Asp.net MVC的那套东西,使用它大部分情况都没问题。比如用它来返回视图,返回json,返回文件等等。...如果是异步则使用Task。...同样异步的话使用Task包起来做为返回值。...Asp.net Core框架会帮我们自动序列化返回给前端,默认使用json序列化。同样异步的话使用Task包起来做为返回值。...因为有了这2个方法,当ActionResult或者TValue类型往ActionResult赋值的时候会进行一次自动的类型转换。所以VS这里不会报错。
如果对请求进行同步处理,则在处理请求时将阻塞处理请求的线程,并且该线程不能对另一个请求提供服务。 这可能不是一个问题,因为线程池可以设置得足够大以容纳许多阻塞的线程。...对 CPU 绑定操作使用异步操作方法未提供任何好处并且还导致更多的开销。 通常,在满足以下条件时使用异步管线: 操作是网络绑定的或 I/O 绑定的而不是 CPU 绑定的。...从 AsyncController 派生的控制器使 ASP.NET 能够处理异步请求,并且这些控制器仍然可以为同步操作方法提供服务。 为操作创建两个方法。...使用异步操作方法中的异步调用替换原始 ActionResult 方法中的同步调用。...传递到 Begin 方法的回调可能会使用由 ASP.NET 控制的线程来进行调用。 因此,您必须在调用 Sync() 之前检查此条件。
前言 Hi,大家好,我是Rector 时间飞逝,一个星期又过去了,今天还是星期五,Rector在图享网继续跟大家分享系列文本:一步一步创建ASP.NET MVC5程序[Repository+Autofac...+Automapper+SqlSugar] 上一篇《一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](四)》,我们完成了: 创建服务层...为什么使用AutoMapper? 映射代码是无聊的。测试映射代码更无聊。AutoMapper提供了一些简单配置,还有一些简单的映射测试。真正的问题可能是“为什么使用对象-对象的映射呢”?...AutoMapperStartupTask().Execute(); } } } 到此,AutoMapper的安装、配置就基本完成了,接下来我们将学习在WEB项目[TsBlog.Frontend]的控制器操作中如何使用...如果遇到问题,欢迎加入图享网官方QQ群:483350228 本文首发于 图享网 《一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar]
,比如以下代码,对一个 Action 使用了过滤器 CustomerActionFilter [CustomerActionFilter] public ActionResult对该控制器内的任意操作执行授权验证;但是单独对 Get 操作进行了授权通过对标记,即 AllowAnonymous ,表示允许匿名访问 这是非常常用的做法,在授权应用中,常常需要对部分操作进行单独的授权策略...关于授权过滤器,先介绍到这里,下一篇单独对授权过滤器进行演示,因为关于这块的内容,要讲的实在是太多了 4....当然,最好的做法是定义结果过滤器,这有助于业务分类,且逻辑清晰明了,但是如果你希望可以使用异步操作,很遗憾,结果过滤器不支持该方法 6.3 下面来看结果过滤的定义 public class CustomerResultFilter... Get() { return "default"; } } 应用方式非常简单,就像使用普通过滤器一样对控制器进行特性标记即可
领取专属 10元无门槛券
手把手带您无忧上云