Asp.net MVC
文章平均质量分 69
不全
这个作者很懒,什么都没留下…
展开
-
EF codeFirst Database.SetInitializer的四种选项
public MyDbContext() : base("name=Default"){//不会创建数据库,生产环境建议用这个设置,表通过sql来创建或修改Database.SetInitializer<MyDbContext>(null); // 数据库不存在时重新创建数据库,会删除主项目或其他插件的表Database.SetInitializer<MyDbContext>(new CreateDatabaseIfNotExists<MyDbContext>.转载 2022-03-31 12:23:32 · 613 阅读 · 0 评论 -
C#之Yield Return语法的作用和好处
还是和以前一样,我先上代码,请大家先拿到我的代码或者你跟着敲,运行看效果,以及理解每行带代码的作用。我们要带着为什么要用Yield这个关键字,不用可以吗这个目的去学知识,我相信会更加的有意思。首先我贴出平时正常输出偶数集合的办法/* * * 学习Yield Return 语法 * 使用两个方法,显示1 - 100之间的全部偶数 * * */using System;using System.Collections.Generic;namespace YieldRe转载 2022-03-30 15:09:12 · 888 阅读 · 0 评论 -
开源的Word读写组件DocX
1、前言读写Offic格式的文档,大家多少都有用到,可能方法也很多,组件有很多。这里不去讨论其他方法的优劣,只是向大家介绍一款开源的读写word文档的组件。读写Excel有NPOI,读写Word,那看看DocX吧。DocX是一个以非常直观简单的方式操作Word2007/2010文件的轻量级.NET组件。它的速度非常快,而且不需要安装微软的Office软件。在中国,免费并且小巧的WPS有足够的理由让很多用户放弃庞大的Office,那在实际软件开发过程中,这玩意就有用处了。遗憾是不支持2003,但总归.转载 2021-11-02 17:17:28 · 938 阅读 · 0 评论 -
DotNetZip实现带密码压缩
DotNetZip是一个开源的免费类库,主要提供了快速操作zip文件的工具集,VB、C#任何.Net语言都可以通过它创建、解压缩zip文件。我使用该类库最主要的目的还是因为它可以创建带密码保护的压缩文件。只有设置了zip.Password = "password"之后,被压缩的文件才会有密码保护。压缩:/// <summary>/// 压缩文件/文件夹/// </summary>/// <param name="filePath">需要压缩的文件/文件夹路原创 2021-10-14 09:41:37 · 1125 阅读 · 0 评论 -
SharpCompress开源库实现zip无乱码压缩和解压
SharpCompress是用到现在,感觉功能最强大的压缩、解压开源插件。它支持处理zip、rar、7z等多种格式的压缩文件,使用方式也很简单。当然,最让我难受的是创建压缩文件的时候没法设置密码~所以才有了上面DotnetZip的代码。SharpCompress版本不同,设置ArchiveEncoding的方式也不同,默认设置了UTF8防止解压乱码。通过设置ArchiveType切换生成不同格式压缩文件压缩/// <summary>/// 压缩文件/文件夹/// </s原创 2021-10-14 09:35:58 · 1274 阅读 · 0 评论 -
Dapper的入门(多表批量插入)
简介: 不知道博客怎么去写去排版,查了好多相关博客,也根据自己做过项目总结,正好最近搭个微服务框架,顺便把搭建微服务框架所运用的知识都进行博客梳理,为了以后复习,就仔细琢磨写一下自己在微服务框架中对Dapepr的理解以及项目中应用。 dapper只是一个代码文件,完全开源,你可以在项目里任何位置,来实现数据到对象ORM操作(当然先引用Dapper文件),体积小速度快。使用好处增删改查比较快,不用自己写sql,因为这都是重复技术含量低的工作,还有程序中大量的数据库中读取数据然后创建model,...转载 2021-08-25 11:59:07 · 2617 阅读 · 0 评论 -
C#配置文件configSections详解
一、问题需求: 在项目中经常遇到需要写配置文件地方,目的就是不想在程序中关于一些信息写死,发布的时候只需要修改一下配置文件就可以,不需要每次都修改程序,如项目名称、数据库连接字符串、IP端口之类 的;对于小项目或者服务程序,配置信息可以通过系统自带的appSettings进行配置,但大项目或者配置信息太多,如果都用appSettings来配置就感觉比较杂乱,运维人员在修改配置的时候不好修改,而且如果想找某一模块相关或者某一节点配置容易出错,这时如果能分类管理,例如跟数据库相关的写到一个节点里,跟某个业务独立转载 2021-07-15 18:05:34 · 357 阅读 · 0 评论 -
ASP.net网站配置文件的读写管理(将网站的配置信息保存到单独配置文件的配置、读写)
前几天由于公司的业务需求,某个系统需要设置一些配置参数,将这些参数保存在数据库显得过于的复杂,并且系统频繁的读取配置信息不合适,不便于以后的管理,显然保存在配置文件中是最好的方式了。后面需要对这些配置信息进行修改管理,管理员当然不希望参数每次去变时去直接修改网站根目录下的Web.config文件,要是能够另外的保存一个文件,并且其它的网站能够同时访问这个文件,直接进行修改就最好了。好了我们根据这个具体的实际需求来进行下面的步骤:一、将网站的配置信息保存到单独配置文件 我们的配置信息一般保存在网.转载 2021-07-15 17:59:06 · 761 阅读 · 0 评论 -
ASP.NET基础之HttpModule学习
ASP.NET基础之HttpModule学习原创 2021-07-15 12:44:32 · 120 阅读 · 0 评论 -
<httpHandlers>的配置和使用
前两天 领导让改了一个控件,就是 百度编辑器的 前台处理和后台处理分开,简单的说,是把 .ashx的页面单独编译成dll ,前后想了想,.ashx文件又没有cs代码,怎么能编译?尝试了几次没能成功,后来用了这么一个办法,问题成功解决! 思路:通过 httpHandlers 自定义 http 访问时做的处理,当前台的JS 访问到 .ashx文件时,我就把他指向一个类去处理,类可以编译成dll ,所有问题就解决了。具体代码: config 配置 <system.web> ...转载 2021-07-15 12:42:36 · 362 阅读 · 0 评论 -
HttpHandler开发的两个重点问题
HttpHandler开发的两个重点问题原创 2021-07-15 10:50:56 · 96 阅读 · 0 评论 -
Asp.net在线压缩,ICSharpCode.SharpZipLib 初级使用
最近做的一个项目需要使用到在线解压缩的过程。需求是这样的,用户可以将所有需要上传的文件进行打包然后上传到服务器,服务器将压缩包进行解压,然后对其中的文件进行逐个处理。其中将压缩包进行服务器端解压的过程就是通过ICSharpCode.SharpZipLib.dll来实现的。对于这个dll文件,可以通过搜索这个dll文件的名字下载到。原来没有使用过,所以拿来帮助文档依葫芦画瓢。1. 在项目中添加对ICSharpCode.SharpZipLib.dll的引用;2. 在需要使用到ICSharpC转载 2021-07-09 12:03:53 · 414 阅读 · 0 评论 -
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
依赖倒置原则(DIP)依赖倒置(Dependency Inversion Principle,缩写DIP)是面向对象六大基本原则之一。他是指一种特定的的解耦形式,使得高层次的模块不依赖低层次的模块的实现细节,依赖关系被颠倒(反转),从而使得低层次模块依赖于高层次模块的需求抽象.该原则规定:高层次的模块不应该依赖低层次模块,二者都应该依赖其抽象接口. 抽象接口不应该依赖于具体实现,而具体实现则应该依赖于抽象接口.通过如下一个简单的示例,我们来看一下,我们通过一个简单地下单流程向我们的用户发送相转载 2021-03-23 14:15:35 · 250 阅读 · 0 评论 -
为ASP.NET MVC应用程序创建单元测试
本教程的目的是解释如何为 ASP.NET MVC 应用程序中的控制器编写单元测试。我们将讨论如何创建三种不同类型的单元测试。您将了解如何测试控制器操作返回的视图、如何测试控制器操作返回的视图数据,以及如何测试一个控制器操作是否重定向到另一个控制器操作。创建测试控制器我们首先创建要测试的控制器。程序清单 1 中包含名称为 ProductController 的控制器。程序清单 1 ProductController.csusing System;using System.Web.Mvc;转载 2021-03-21 17:06:02 · 176 阅读 · 0 评论 -
VS2019 ASP .NET MVC项目如何新建区域(Area)
由于在VS2019新的MVC5项目下新建的区域选项被折叠至另外的地方,所以新建区域的方式有别于之前的版本 操作:项目右键->添加->新搭建基架的项目->通用/MVC/区域原创 2021-03-21 15:53:58 · 929 阅读 · 2 评论 -
C# 单元测试(入门)
注:本文示例环境VS2017 XUnit 2.2.0 单元测试框架 xunit.runner.visualstudio 2.2.0 测试运行工具 Moq 4.7.10 模拟框架什么是单元测试?确保软件应用程序按作者的期望执行操作,其中最好的一种方法是拥有自动化测试套件。 可以对软件应用程序进行各种不同的测试,包括集成测试、Web 测试、负载测试等。 测试各个软件组件或方法的单元测试是最低级测试。所谓单元测试(unit testing),就是开发者编写的一小段代码,用于对软件中的最小单元进转载 2021-03-21 12:50:39 · 5272 阅读 · 0 评论 -
ASP.NET MVC中错误处理方式
aspnet mvc的错误处理方式主要有以下两种方式一:通过对controller或者action标记HandleError属性,然后指定一个错误页即可。这种方式最简单,不需要额外增加action ,仅仅需要增加错误页,但是不能记录日志(因为没有action,其实在aspx中也可调用记录日志的方法)。这个错误页还可以定义为强类型,类型为HandleErrorInfo,具体的Model又框架传递,可获取具体的异常信息。///<summary>///标记了Hand...原创 2021-03-10 16:25:26 · 618 阅读 · 0 评论 -
asp.net c# 通过消息队列处理高并发请求(以抢小米手机为例)
网站面对高并发的情况下,除了增加硬件, 优化程序提高以响应速度外,还可以通过并行改串行的思路来解决。这种思想常见的实践方式就是数据库锁和消息队列的方式。这种方式的缺点是需要排队,响应速度慢,优点是节省成本。演示一下现象创建一个在售产品表CREATE TABLE [dbo].[product]( [id] [int] NOT NULL,--唯一主键 [name] [nvarchar](50) NULL,--产品名称 [status] [int] NULL ,--0未售出转载 2021-03-05 15:33:39 · 2079 阅读 · 0 评论 -
.Net Framework 之 框架图
.Net Framework框架图,如下图: 它表明了这么一种编写软件的方式或者说表明了.Net平台下开发软件的思想和规范。 .Net Framework框架实际只包含两部分: 1、公共语言运行时(CLR: Common Language Runtime) ; 2、框架类库(FCL: Framework Class Library)。 可以设想自己是一个软件项目经理, 很不凑巧的是手里面的程序员有精通VB、VC++和C#的程序员各一名, 那么如何来使这些程序员写作开.转载 2021-03-01 16:38:17 · 1934 阅读 · 0 评论 -
.Net编译原理
.Net平台简介:.Net是微软搭建的一个平台,C#语言可以通过.Net平台来编写、部署、运行.Net应用程序,当然,不仅仅是C#语言,其他.Net语言也可以运行在此平台之上,如VB.Net,但在这着重于C#的讲解;则.Net平台式一个跨语言的平台;.Net平台中内部有多种机制和类库,但更为重要的有两大组成:1. FCL-框架类库,这是微软事先定义好的类的集合,里面包含了常用的类,以至于方便程序员调用;2.CLR-公共语言运行时,这是创建、部署、运行.Net程序的必备环境,若没有此环境,程序原创 2021-03-01 15:45:26 · 1188 阅读 · 0 评论 -
C# 静态构造函数和构造函数
构造函数这个概念,在我们刚开始学习编程语言的时候,就被老师一遍一遍的教着。亲,现在你还记得静态构造函数的适用场景吗?如果没有,那么我们一起来复习一下吧。静态构造函数是在构造函数方法前面添加了static关键字之后形成的,并且没有修饰符(public,private),没有参数。静态构造函数有哪些特点呢:静态构造函数没有修饰符修饰(public,private),因为静态构造函数不是我们程序员调用的,是由.net 框架在合适的时机调用的。 静态构造函数没有参数,因为框架不可能知道我们需要在函数中转载 2021-03-01 15:17:58 · 972 阅读 · 0 评论 -
ASP.NET(C#) 面试总结面试题大全
一、对于 Web 性能优化,您有哪些了解和经验吗?出现指数:五颗星主要考点:这道题是博主在博客园的新闻里面看到的,回想之前几年的面试经历,发现此题出现概率还是比较高的。因为它的考面灰常广,可以让面试官很快了解你的技术涉及面以及这些技术面的深度。参考答案:这个问题可以分前端和后端来说。1、前端优化(1)减少 HTTP 请求的次数。我们知道每次发送http请求,建立连接和等待相应会花去相当一部分时间,所以在发送http请求的时候,尽量减少请求的次数,一次请求能取出的数据就不要分多次发送。(2)启用浏转载 2021-03-01 13:27:34 · 2157 阅读 · 0 评论 -
.Net常见的IOC框架及AOP框架
IOC框架Unity:微软patterns&practicest团队开发的IOC依赖注入框架,支持AOP横切关注点。 MEF(Managed Extensibility Framework):是一个用来扩展.NET应用程序的框架,可开发插件系统。 Spring.NET:依赖注入、面向方面编程(AOP)、数据访问抽象,、以及ASP.NET集成。 Autofac:最流行的依赖注入和IOC框架,轻量且高性能,对项目代码几乎无任何侵入性。 Ninject:基于.NET轻量级开源的依赖注入IOC框转载 2021-03-01 13:24:38 · 2341 阅读 · 0 评论 -
AOP面向方面编程---postsharp
PostSharp是一个用于在.NET平台上实现AOP(Aspect-Oriented Programming,面向方面编程)的框架,现通过简单的示例代码来演示如何使用postsharp。1、新建一个控制台应用程序。.net框架是4.6.1版本的。2、创建一个类CoreBusiness,表示用于完成项目的核心业务。class CoreBusiness { [Log(ActionName = "Work_1")] public void Work_1()转载 2021-03-01 13:18:07 · 1985 阅读 · 0 评论 -
IIS 和 WEB 站点文件夹权限配置
首先在D:根目录新建一个wwwroot文件夹,用来做为WEB服务器站点的根目录,里面存放不同网站的文件夹。例如新建第一个网站存放文件的目录WebSite1,为了杜绝跨站攻击等各种相关安全问题,实现各个虚拟主机目录有独立权限的访问机制,我们要给每个目录分配一个匿名访问的用户帐号。 依次右击桌面我的电脑----->管理------>本地用户与组,然后新建一个用户IISUSER_01,选中用户不能更改密码和密码永不过期,去掉其余两项复选。(当然,如果您的WEBSER...转载 2020-12-17 10:50:52 · 1728 阅读 · 0 评论 -
Asp.net MVC站点建议过滤的请求文件类型
以下的请求类型为本人开发站点中通过全局Exception获取的一些 请求文件类型,这些请求文件类型可能是漏洞安全扫描之类的操作发出的,频率较高;.aspx\.xml\.action\.env\.xls\.htm\.jsp\.php\.txt\.rar\.ssh\.sql\.gz\.properties\.do\.log\.html\.bak\.tar\.gitignore\.md\.swp\.zip\.asp为了尽量保证自己站点正常、安全的运行,可以在自己的"站点"-->“请求筛...原创 2020-12-07 11:39:51 · 147 阅读 · 0 评论 -
ASP.NET MVC下的四种验证编程方式
ASP.NET MVC采用Model绑定为目标Action生成了相应的参数列表,但是在真正执行目标Action方法之前,还需要对绑定的参数实施验证以确保其有效性,我们将针对参数的验证成为Model绑定。总地来说,我们可以采用4种不同的编程模式来进行针对绑定参数的验证。一、手工验证绑定的参数在定义具体Action方法的时候,对已经成功绑定的参数实施手工验证无疑是一种最为直接的编程方式,接下来我们通过一个简单的实例来演示如何将参数验证逻辑实现在对应的Action方法中,并在没有通过验证的情况下将错误信息转载 2020-11-10 10:00:42 · 242 阅读 · 0 评论 -
如鹏网笔记
https://www.cnblogs.com/DotNetStu/tag/%E7%AC%94%E8%AE%B0/原创 2020-11-06 09:59:57 · 255 阅读 · 0 评论 -
C#中的深拷贝与浅拷贝
C#中的深拷贝与浅拷贝浅拷贝和深拷贝之间的区别: 浅拷贝:是指将对象中的数值类型的字段拷贝到新的对象中,而对象中的引用型字段则指复制它的一个引用到目标对象。如果改变目标对象中引用型字段的值他将反映在原始对象中,也就是说原始对象中对应的字段也会发生变化。 深拷贝:与浅拷贝不同的是对于引用的处理,深拷贝将会在新对象中创建一个新的和原始对象中对应字段相同(内容相同)的字段,也就是说这个引用和原始对象的引用是不同的,我们在改变新对象中的这个字段的时候是不会影响到原始对象中对应字段的内容。所...转载 2020-09-22 17:11:03 · 266 阅读 · 1 评论 -
C#中全局异常捕获
C# 全局异常捕获开发界有那么一个笑话,说是“「我爱你」三个字,讲出来只要三秒钟,解释要三小时,证明却要一辈子。「Bug」三个字母,发现需要三秒,找到需要三小时,Debug却要一辈子。”。就算是资深的程序员也会写出Bug,但Bug并不可怕,重要的是在Bug发生的时候迅速定位Bug。在Visual Studio中调试的时候,我们可以借助VS的调试工具进行调试,一旦出现未处理的异常时,VS也会在第一时间捕获并显示出来。随着开发的进行,终于程序要打包上线了。那么在上线之出了BUG我们该如何处理呢?.转载 2020-09-12 10:33:50 · 5682 阅读 · 0 评论 -
EntityFramework 的5种状态-简记
Unchanged(持久态) Midified(修改) Deleted(删除) Added(新增) Detached(游离态:相当于new出来的和数据库无关,在我看来也该就是using的时候的状态)解释一下整个图的流程吧。Added,也就是从游离态到 Added新增状态,在集合DbSet调用Add()方法之前都是处于游离的状态,调用之后就变成了Added(在没有Savechanges()之前)在调用Savechanges之后就和数据库同步了,这个时候它的状态就变成 Unchanged(..转载 2020-09-10 14:18:58 · 370 阅读 · 0 评论 -
C#中使用正则表达式-Regex类的使用示例
Regex.Split方法分割字符串,示例如下: /// <summary> /// 正则表达式分割字符串一 /// </summary> static void RegexSplit() { string str = "1.Fish 2.Cat 3.Dog 4.tigger 30.lion"; string pattern = @"\b\d{1,2}\原创 2020-09-01 15:40:45 · 396 阅读 · 0 评论 -
C#动态加载DLL程序集及使用反射创建实例-简记
Assembly动态加载程序集:分两种情况:1、需要加载的程序集已经在程序中被引用了,则直接从当前程序域中查找即可:Assembly assembly = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(x => x.GetName().Name.Contains("theAssemblyName"));2、需要加载的程序集未被加载,则使用程序集名称加载:方法一,需要具体程序集的一些必要信息,如下:Ass..原创 2020-08-27 16:02:35 · 2338 阅读 · 0 评论 -
浅谈C#中的抽象类、密封类、静态类
通过对C#语言的基础学习,对里面的抽象类、密封类和静态类有了基础的认识,下面我就来总结一下这三个类的特点。一、抽象类在C#中的抽象类就是设计为被继承的类,它只能用作其他类的基类。对于抽象类来说,它有以下几个特征:1、抽象类不能创建实例,也就是说抽象类不能实例化;2、用abstract修饰符来声明抽象类;3、抽象类中可以包含抽象成员或普通的非抽象成员,也就是说抽象类成员可以是抽象成员和普通带实现的成员的任意组合;4、抽象类可以自己派生自另一个抽象类;5、...原创 2020-08-27 14:14:50 · 1715 阅读 · 0 评论 -
C#中文件读写类(File、FileStream和StreamReader等类)-简记
在C#中对文件的读写操作主要有File、FileStream、StreamReader和StreamWriter这些类,但这两个类对文件的操作有一些区别,现记录如下:File类:File.ReadAllBytes方法:读操作,操作字节,一次性读取,返回字节数组,要使用System.Text.Encoding.GetEncoding(具体编码格式).GetString(数组)解码成字符串,或使用System.Text.Encoding.具体编码格式(Default、UTF-8等).GetString(原创 2020-08-26 14:04:59 · 3293 阅读 · 0 评论 -
C#中的Lambda表达和Linq的一些用法--简记
测试的数据: //学生列表 List<Student> slist = new List<Student>(); slist.Add(new Student() { Id=1,Name="学生零",Course="语文"}); slist.Add(new Student() { Id = 2, Name = "学生一", Course = "数学" }); sl原创 2020-08-18 17:45:49 · 360 阅读 · 0 评论 -
自定义ASP.NET MVC JsonResult序列化结果
最近项目中前台页面使用EasyUI的jQuery插件开发中遇到,EasyUI Form中的Datebox组件绑定ASP.NET MVC返回的DateTime类型的数据错误,因为ASP.NET MVC返回的DateTime类型的JsonResult的结果中的值是"\/Date(277630788015)\/",于是EasyUI显示的就是返回的值,没有将日期转换,直接显示在DateBox组件中,解决这个问题其实有两种办法:扩展EasyUI的datebox组件的parser函数自定义格式化日期格式,不过存在一转载 2020-06-11 17:01:44 · 623 阅读 · 0 评论 -
在.NET使用JSON作为数据交换格式
摘要我们知道在.NET中我们有多种对象序列化的方式,如XML方式序列化、Binary序列化,其中XML序列化是一种比较通用的在各语言之间传递数据的方式。除了这两种序列化方式之外,在.NET中还可以使用JSON序列化。我们知道在.NET中我们有多种对象序列化的方式,如XML方式序列化、Binary序列化,其中XML序列化是一种比较通用的在各语言之间传递数据的方式。除了这两种序列化方式之外,在.NET中还可以使用JSON序列化。 JSON(JavaScript Object Notation)是一种转载 2020-06-11 17:26:10 · 183 阅读 · 0 评论 -
HttpModule介绍
1. 引言Http 请求处理流程和Http Handler 介绍这两篇文章里,我们首先了解了Http请求在服务器端的处理流程,随后我们知道Http请求最终会由实现了IHttpHandler接口的类进行处理(应该记得Page类实现了IHttpHandler)。从Http 请求处理流程一文的最后的一幅图中可以看到,在Http请求由IHttpHandler处理之前,它需要通过一系列的Http Module;在请求处理之后,它需要再次通过一系列的Http Module,那么这些Http Module是...转载 2020-05-25 17:10:33 · 1015 阅读 · 0 评论 -
HttpHandler介绍
在Http请求处理流程一文中,我们了解了Http请求的处理过程以及其它一些运作原理。我们知道Http管道中有两个可用接口,一个是IHttpHandler,一个是IHttpModule,但在Part.1中,我并没有详细讲述如何对它们进行编程,只是轻描淡写地一笔带过。所谓学以致用,前面已经介绍了不少概念和原理。在本文中,我们通过几个范例来了解 IHttpHandler,看看掌握这些原理的实际用途。1. IHttpHandler 概述可能和我一样,很多Asp.Net开发人员都有过Asp的背景,以至于我..转载 2020-05-25 17:04:34 · 1891 阅读 · 0 评论