MVC技巧
文章平均质量分 83
chengmodelong
工作十余年的码农,爱好 电影、跑步、交朋友。欢迎大家来骚扰。一起交流
展开
-
NET CORE 防止跨站请求伪造(XSRF/CSRF)攻击处理
什么是跨站请求伪造(XSRF/CSRF)在继续之前如果不给你讲一下什么是跨站请求伪造(XSRF/CSRF)的话可能你会很懵逼,我为什么要了解这个,不处理又有什么问题呢?CSRF(Cross-site request forgery跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站...原创 2020-02-17 19:26:11 · 1381 阅读 · 0 评论 -
新版支付宝 SDK 申请流程
1登陆支付宝商家平台 :获取开放平台 APPID,2、下载支付宝 密钥生成工具。生成RSA2 密钥3、将公钥 复制到 接口加签方式 公钥中,获得 支付宝 公钥 保存下。用于后面 查询API 接口使用。即可使用新版 支付宝 SDK 进行相关操作...原创 2020-02-05 20:58:18 · 2406 阅读 · 0 评论 -
.Net Framework项目引用.NetStandard标准库出现版本冲突解决办法
今天在工作中出现一个引用问题,害我找问题找了很久。起因是在一个Winform项目下需要引用一个.NetStandard标准库,标准库引用了System.ComponentModel.Annotations程序集,版本是4.5.0,在Winform项目运行过程中抛出了以下异常:“未能加载文件或程序集“System.ComponentModel.Annotations, Version=4.2....原创 2019-12-14 13:32:11 · 2984 阅读 · 0 评论 -
NET Framework 引用 .NET Standard类库时致出现:未能加载文件或程序集的异常
NET Framework 引用 .NET Standard类库时致出现System.IO.FileNotFoundException: 未能加载文件或程序集问题描述.NET Framework 引用 .NET Standard类库时,依赖项不能从standard流向framework导致出现 System.IO.FileNotFoundException: 未能加载文件或程序集 的异...原创 2019-12-13 09:54:51 · 1164 阅读 · 0 评论 -
事务使用中如何避免误用分布式事务(System.Transactions.TransactionScope)
1:本地事务DbTransaction和分布式事务TransactionScope的区别:1.1:System.Data.Common.DbTransaction:本地事务:这个没什么好说了,就是单个事务,每种数据库都有自己的实现,事务的深度内涵可以搜索查看相关的文章,不是本文介绍的重点。1.2:System.Transactions.TransactionScope:转载 2015-04-30 09:49:46 · 742 阅读 · 0 评论 -
EntityFramework动态组合多排序字段
前言:在使用EF当中,肯定会遇到动态查询的需求,建立一个公共调用的动态组合表达式查询也是必不可少的,以下是建立动态组合多排序字段做个记录,供以后调用1、建立一个结构,用于多个排序字段组合,这个结构体有两个字段,一个是需要排序的属性名,一个是是否是升序降序的判断public struct OrderModelField { public string prop转载 2015-05-05 17:09:09 · 1335 阅读 · 0 评论 -
EF 跨数据库操作
以前在用MVC + EF 的项目中,都是一个数据库,一个DbContext,因此一直没有考虑过在MVC+EF的环境下对于多个数据库的操作问题。等到要使用时,才发现这个问题也不小(关键是有个坑)。直接说这个问题的解决流程吧:1)由以往的经验:在ADO.NET中,要操作多个数据库,那就多写两个SqlHelper吧,或封装下,能动态的修改链接字符串。因此想到在这里能不能建多个ADO.NET实体数转载 2015-05-14 17:22:49 · 4313 阅读 · 1 评论 -
Newtonsoft.Json高级用法
手机端应用讲究速度快,体验好。刚好手头上的一个项目服务端接口有性能问题,需要进行优化。在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数据,经过分析一个简单的列表接口每一行数据返回了16个字段,但是手机APP端只用到了其中7个字段,剩余9个字段的数据全部都是多余的,如果接口返回数据为40K大小,也就是说大约20K的数据为无效数据,3G转载 2015-06-29 11:24:08 · 1302 阅读 · 0 评论 -
asp.netMVC中的自动绑定模型测试小结
原来以为 MVC自动绑定模型不能 直接转化为LIST,经过测试之后。发现我错了。是可以的。不用再转成数组再转为LIST。省了一大步。呵呵 1.首先,创建一个MVC4的项目 2.创建一个Controller(控制器),有些小小菜肯定也知道Home是路由里默认的。 3.控制器都有了,默认会有个Index动作方法,我们只原创 2015-05-07 08:45:50 · 449 阅读 · 0 评论 -
微软的TransactionScope类是个好玩意
最近发现微软自带的TransactionScope(.Net Framework 2之后)是个好东东,提供的功能也很强大。 首先说说TransactionScope是什么,并能为我们做什么事情。其实看Transaction(事务)这个单词,我想大家已经能猜到个大概。不同于SqlTransaction的事务,因为现在做的项目都有不同的分层架构,如果不在数据库操作层里面做的话,那么使用Tra原创 2015-04-30 09:35:26 · 442 阅读 · 0 评论 -
Entity Framework 5.0 Code First全面学习
Code First 约定借助 CodeFirst,可通过使用 C# 或Visual Basic .NET 类来描述模型。模型的基本形状可通过约定来检测。约定是规则集,用于在使用 Code First 时基于类定义自动配置概念模型。约定是在 System.Data.Entity.ModelConfiguration.Conventions 命名空间中定义的。可通过使用数据注释或Fl原创 2015-04-16 15:25:44 · 1038 阅读 · 0 评论 -
EF Code First Migrations数据库迁移
1、EF Code First创建数据库 新建控制台应用程序Portal,通过程序包管理器控制台添加EntityFramework。 在程序包管理器控制台中执行以下语句,安装EntityFramework。PM> Install-Package EntityFramework 安装成功后,界面提示如下图: 在新建的Portal控制台应用原创 2015-04-15 16:04:06 · 703 阅读 · 0 评论 -
Entity Framework执行Sql语句返回DataTable
Entity Framework中对外开放了数据库连接字符串,使用的时候可以直接得到这个连接字符串,然后进行相关的操作。如果在使用的过程中,发现Entity Framework中有一些满足不了的需求的话,那么就可以用这个连接字符串,自己写ADO的代码,去数据库进行相关的操作。特别是对于一些复杂的查询,这时候,一般是想直接执行一个Sql语句,返回一个结果集。下面是一个方法,直接返回DataTab原创 2015-03-20 21:22:37 · 3494 阅读 · 0 评论 -
安装完毕后VS2012(2013)中找不到ADO.NET Entity Data Model模板或 sql server database project模板
Ado.net entity data model 解决:具体:在C:\ProgramData\Package Cache\ 搜索到相应的EFTools.msi .注意:先执行UnInstall(remove),再执行install。 对应版本:VS2012 对应EFTools V11 VS2013 对应EFTools V12原创 2015-03-26 15:49:42 · 620 阅读 · 0 评论 -
EF5 操作数据库,分离数据操作与业务逻辑
using Mvc.Entity; using System; using System.Collections.Generic; using System.Data.Entity.Infrastructure; using System.Linq; using System.Linq.Expressions; using System.Reflection;原创 2014-12-16 11:55:10 · 987 阅读 · 0 评论 -
Linq多表链接分页,Select new{"需要的字段列.."},配合杨涛Mvcpager,前台遍历展示自定义字段
题前:,Select new{"需要的字段列.."}好处,减少不必要数据的查询,尤其是分布式的时候,网络再不好的情况下,而不必要的数据又很多,Select new{"需要的字段列.."}好处明显如题,Linq多表链接分页,Select new{"需要的字段列.."},配合杨涛Mvcpager,前台遍历展示自定义字段(1) 我的例子是,(Tb_Mnager)管理员表原创 2015-02-08 22:40:05 · 964 阅读 · 0 评论 -
EntityFramework动态多条件查询与Lambda表达式树
在常规的信息系统中, 我们有需要动态多条件查询的情况, 例如UI上有多个选择项可供用户选择多条件查询数据. 那么在.net平台Entity Framework下, 我们用Lambda表达式树如何实现, 这里我们需要一个PredicateBuilder的UML类图:实现的代码是这样的: /// /// Enables the efficient, dy转载 2015-05-07 14:26:46 · 3738 阅读 · 0 评论 -
基于.Net的单点登录(SSO)解决方案
前些天一位朋友要我帮忙做一单点登录,其实这个概念早已耳熟能详,但实际应用很少,难得最近轻闲,于是决定通过本文来详细描述一个SSO解决方案,希望对大家有所帮助。SSO的解决方案很多,但搜索结果令人大失所望,大部分是相互转载,并且描述的也是走马观花。 闲话少叙,进入正题,我的想法是使用集中验证方式,多个站点集中Passport验证。 如下图所示: 为方便清晰描述,先定义转载 2015-05-08 09:12:23 · 377 阅读 · 0 评论 -
解决.VS2012+EF5.0开发的网站在window server2003上无法部署的问题
(一)前 言 最近一个月使用VS2012(默认框架是.net framework4.5),EF5.0开发了一套基础框架。开发完成之后,准备部署到window server 2003(公司的外网服务器)。却发现 window server 2003只支持.ne转载 2015-05-27 15:36:07 · 713 阅读 · 0 评论 -
.NET 允许AJAX 跨域访问
WebConfig配置信息<system.webServer> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET" /> <add name="A...原创 2019-04-01 19:52:08 · 973 阅读 · 0 评论 -
循环获取子类递归
public List FindChild(List list, int parent = 0) { List pageValues = new List(); if (list.Where(o => o.ParentId == parent).Count() > 0) {原创 2017-05-18 10:46:04 · 675 阅读 · 0 评论 -
解决:无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次
1、输入的中划线“-”格式不对,检查是否为全角状态下输入,误输入了下划线“_",或是前后有空格;2、没有引用EntityFramework命令,请执行如下名称(Import-Module 项目路径\packages\EntityFramework.6.1.3(EF版本)\tools\EntityFramework.psd1) 另外需要注意的是,执行命令时,默认项目一定要选择包含模型的项转载 2017-05-25 19:25:02 · 43053 阅读 · 6 评论 -
tsc.exe 已退出 代码为 1
最近项目需要,将vs2012升级到VS2015 update3,打开ABP项目时提示tsc.exe 已退出 代码为 1,然后一大堆错误TS2304 TypeScript 找不到名称“readonly”。。。。。。,后来根据github指引https://github.com/Microsoft/TypeScript/issues/8130,从微软官网下载TypeScript_Dev14Full,解转载 2017-05-24 18:05:27 · 1358 阅读 · 0 评论 -
结束日期必须大于开始日期--My97DatePicker日历控制的又一方便之处
' class="Wdate" onfocus="WdatePicker({dateFmt:'yyyy/MM/dd',minDate:'#F{$dp.$D(\'startDate\')}',lang:'en'})"/> 在做时间查询时,有时需要两个日期,从一个日期到另外一个日期的那种,但是这样会有一个问题,比如后者的结束日期晚于开始日期怎么办?用JS写验证,麻烦,呵呵,用这个日历控件,可方便转载 2017-01-02 20:26:50 · 5162 阅读 · 1 评论 -
SQLServer BCP 导入导出数据
bcp 实用工具可以在 SQL Server 实例和用户指定格式的数据文件间大容量复制数据。使用 bcp 实用工具可以将大量新行导入 SQL Server 表,或将表数据导入数据文件。除非与 queryout 选项一起使用,否则使用该实用工具不需要了解 Transact-SQL 知识。若要将数据导入表中,必须使用为该表创建的格式文件,或者必须了解表的结构以及对于该表中的列有效的数据类型。b转载 2016-09-25 21:33:16 · 935 阅读 · 0 评论 -
EF中执行存储过程,获取output返回值
EF不能直接支持执行存储过程,于是使用转化成执行SQL语句的形式,却怎么也获取不到output的值,折腾的好久,终于解决了,分享下曲折的经历:public int AddVote(int titleId, int blockId, int typeId) { List paramArray = new List(); paramA转载 2016-09-09 14:10:23 · 7727 阅读 · 1 评论 -
AutoMapper 复杂实体映射
实体映射 var list = new List(); using (dataContext = new EPDbContext()) { list = dataContext.tb_article.Take(10).ToList(); } AutoMa原创 2016-04-04 20:25:57 · 6355 阅读 · 0 评论 -
Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
今天乍一看,园子里居然没有关于这个类库的文章,实在是意外毕竟已经有很多介绍EF使用的文章了。E文好的可以直接看https://github.com/loresoft/EntityFramework.Extended也可以在nuget上直接安装这个包,它的说明有点过时了,最新版本已经改用对IQueryable的扩展,而不是DbSet(已经标记为弃用),所以跟我一样有隔离癖好的就可以大原创 2015-08-26 09:32:31 · 1507 阅读 · 0 评论 -
即使用ADO.NET,也要轻量级动态生成更新SQL
不管出于什么原因,有时候框架人员摒弃了NH或EF,而使用原生数据库访问对象。为了优美的编程,用上我写的轻量级动态生成更新SQL扩展方法吧还记得在EF中只更新修改过的字段时,我们这么写: var e = db.Entry(d); e.State = EntityState.U转载 2015-06-16 09:16:56 · 1201 阅读 · 0 评论 -
.NET MVC 获取 当前请求的 控制器/视图/区域 的名字
1)过滤器中的:[csharp] view plaincopyprint?public class CMSAttribute : FilterAttribute, IAuthorizationFilter { public void OnAuthorization(AuthorizationContext filterCo转载 2015-05-29 11:26:27 · 7329 阅读 · 0 评论 -
log4net 记录MVC监控日志
由于MVC自身的特点,可以让我们记录每一个Controller下Action的执行时间以及View视图渲染完成的时间,本文采用log4net记录MVC每个Action的执行时间和View视图渲染完成时间,以及请求Action时post或get的数据。这样通过日志记录的时间方便我们定位哪一个Action和View执行的时间过长,进而采取优化的手段。监控日志监控的指标如下图监控原创 2015-01-17 21:49:22 · 502 阅读 · 0 评论 -
找到了多个与名为“Home”的控制器匹配的类型
问题:“/”应用程序中的服务器错误。 找到了多个与名为“Home”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由没有指定命名空间来搜索匹配此请求的解决:MVC中的Area的区域的时候,在一个Area中定义了一个Home控制器,在启动的时候,找到多个与名为“Home”的控制器匹配的类型。如果为此请求(“{controller原创 2014-12-12 09:51:51 · 10953 阅读 · 0 评论 -
Linq To Entities中的动态排序
public static IOrderedQueryable OrderBy(this IQueryable source, string property) { return ApplyOrder(source, property, "OrderBy"); } public static IOrdered原创 2014-11-11 10:02:38 · 633 阅读 · 0 评论 -
Combres JS和CSS 在MVC3 下压缩
转自:http://www.cnblogs.com/zxktxj/archive/2012/05/30/2526246.htmlNuGet 网站:http://nuget.codeplex.com/releases/view/64974Combres 英文介绍:http://www.codeproject.com/KB/aspnet/combres2.aspxmvc3的转载 2014-07-05 11:55:45 · 546 阅读 · 0 评论 -
rar文件Combres对JS、css打包压缩的组件使用
作用:多个JS或CSS文件 打包,同一加载,减少请求次数。原因:点击YSlow查看详情测试项目:下载示例项目使用方法:1) 下载Combres2.0组件,或本地下载(测试知,高版本的不支持MVC3 ,郁闷了,也不想想MVC4谁用Combres啊,自带的多好),解压,得到一个文件夹“Combres_2.0”,里面有三个压缩文件,继续解压红线标注原创 2014-07-05 13:43:28 · 595 阅读 · 0 评论 -
HtmlHelper 添加扩展方法. 使用Lambda表达式作为参数
1) 扩展方法: 扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。2) 扩展方法的特性1:必须静态的,但它们是通过实例方法语法进行调用的。即:通过 "目标扩展类" 的事例调用的.2: 它们的第一个参数指定该方法作用于哪个类型,并且该参数以原创 2014-05-27 16:55:57 · 885 阅读 · 0 评论 -
[ASP.NET MVC]通过对HtmlHelper扩展简化“列表控件”的绑定
在众多表单元素中,有一类元素用于绑定一组预定义列表。传统的ASP.NET Web Form中,它对应着一组重要的控件类型,即ListControl,我们经常用到DropDownList, ListBox、CheckBoxList和RadioButtonList都是其子类。ASP.NET MVC通过对HtmlHelper和HtmlHelper的扩展实现了对不同类型的元素的绑定,它们以扩展方法的形式定转载 2014-06-05 11:49:27 · 449 阅读 · 0 评论 -
在 LINQ to Entities 查询中无法构造实体或复杂类型 "Models.Order”
错误代码:var orders = db.Orders.Where(o => o.UserId == userid).Select(c => new Order { OrderId = c.OrderId, OrderDate转载 2014-05-15 09:44:57 · 5379 阅读 · 2 评论 -
Entity Framework添加记录时获取自增ID值
与Entity Framework相伴的日子痛并快乐着。今天和大家分享一下一个快乐,两个痛苦。先说快乐的吧。Entity Framework在将数据插入数据库时,如果主键字段是自增标识列,会将该自增值返回给实体对象对应的属性。比如下面添加博客随笔至数据库的示例代码:var blogPost = new BlogPost(){ Author = "博客园",转载 2014-05-14 09:18:57 · 3286 阅读 · 1 评论 -
asp.net 配置Session的方式
2014-05-16 12:48 26人阅读 评论(0) 收藏 举报1:第一种 放在进程中 直接如下,其他啥也不做:[html] view plaincopyprint?sessionState mode="InProc" >sessionState> 2:第二种 数据库中,必须使用命令行创建,如下:转载 2014-05-21 14:28:04 · 592 阅读 · 0 评论