摘要:
EasyUI、权限管理 这是个都快被搞烂了的组合,但是easyui的确好用,权限管理在项目中的确实用。一直以来博客园里也不少朋友分享过,但是感觉好的要不没源码,要不就是过度设计写的太复杂看不懂,也懒得去看懂,还有一些不是在推广自己的代码生成器就是在卖权限组件,看着漂亮的UI和完善的功能就是没源码学习... 阅读全文
摘要:
过滤器(Filters)的出现使得我们可以在ASP.NET MVC程序里更好的控制浏览器请求过来的URL,不是每个请求都会响应内容,只响应特定内容给那些有特定权限的用户,过滤器理论上有以下功能:判断登录与否或用户权限决策输出缓存防盗链防蜘蛛本地化与国际化设置实现动态Action(做权限管理系统的好东西)先来看一个简单的例子:新建一个AuthFiltersController,里面有两个Actionpublic ActionResult Index(){ return View();}[Authorize]public ActionResult Welcome(){ return V... 阅读全文
摘要:
MVC应用程序里的URL请求是通过控制器Controller处理的,不管是请求视图页面的GET请求,还是传递数据到服务端处理的Post请求都是通过Controller来处理的,先看一个简单的Controlller:public class DerivedController : Controller{ public ActionResult Index() { ViewBag.Message = "Hello from the DerivedController Index method"; //动态数据 return View("MyView");.. 阅读全文
摘要:
webForm页面运行起来url一般是这样的:localhost:****/index.aspx,这个过程就是当你运行页面的时候,vs开发工具自带的微型服务器会打开你存在硬盘上的这个文件然后显示在浏览器上,所以url是后半部分是页面的名字(index.aspx),但是在mvc中却是这样的:localhost:****/index,因为mvc中有一整套路由机制来控制浏览器的请求。看看Global.asax文件里路由的定义:public static void RegisterRoutes(RouteCollection routes){ routes.IgnoreRoute("{res 阅读全文
摘要:
MVC系列文章终于开始了,前段时间公司项目结束后一直在封装一个html+ashx+js+easyui的权限系统,最近差不多也完成了,迟些时候会分享源码给大家。当然这个MVC系列结束后如果时间允许还会另写一个MVC + EF + ExtJs的权限系统作为总结,希望有兴趣的朋友保持关注。本系列文章使用的环境是:VS2010 + 4.0 Framework、sql 2008企业版、MVC3、EF4.1注:VS2010不带MVC3,ASP.NET MVC 3 RTM下载地址。装的时候vs不要打开,先装MVC3,再装汉化包。安装中不要强制取消,就算取消也要等回滚完,否则下次vs启动不了。一、ASP.NE 阅读全文
摘要:
上篇文章介绍了ValidationAttribute和IValidatableObject.Validate验证,但是这种验证还是稍微简单了,对于复杂的实体,例如:继承过来的实体、实现某接口的实体等等,简单的验证就无能为力了。这里重写ValidateEntity方法可以实现更为复杂的验证。ValidateEntity本身是虚方法(virtual),故可以重写此方法加上自己的验证逻辑。在引入:System.Data.Entity.Infrastructure、System.Data.Entity.Validation、System.Collections.Generic三个命名空间的前提下,直接 阅读全文
摘要:
之前的Code First系列文章已经演示了如何使用Fluent API和Data Annotation的方式配置实体的属性,比如配置Destination类的Name属性长度不大于50等。本文介绍EF里更强大的Validation API达到实体属性验证的效果。主要是通过ValidationAttributes属性和IValidatebleObject接口来进行的验证。一、实体属性的简单验证(GetValidationResult方法)修改person类LastName属性不超过10个字符: [MaxLength(10)] public string LastNa... 阅读全文
摘要:
本文目录查看实体当前、原始和数据库值:DbEntityEntry查看实体的某个属性值:GetValue方法拷贝DbPropertyValues到实体:ToObject方法修改DbPropertyValues当前值:索引器克隆实体:Clone方法设置实体的值:SetValues方法克隆实体:SetValues获取和设置实体的单个属性:Property方法查询实体的属性是否被修改:IsModified方法修改导航属性重新加载实体:Reload方法读取相关联的实体和状态:DbContext.ChangeTracker.Entries方法EF里如何解决更新时的冲突重写上下文的SaveChanges方法 阅读全文
摘要:
本文目录使用EntityState枚举实现单个实体的增/删/改增加:DbSet.Add = > EntityState.Added标记实体为未改变:EntityState.Unchanged修改:EntityState.Modified删除:DbSet.Remove = > EntityState.DeletedEF里实体状态的递归(recursive)不被上下文追踪的情况下实现增删改操作让实体实现自定义的IObjectWithState接口来设置实体状态通用的转换实体状态方法本文源码和系列文章目录之前使用EF都是通过调用SaveChanges方法把增加/修改/删除的数据提交到数据 阅读全文
摘要:
本文目录EF对单个实体的增查改删增加单个实体查询单个实体修改单个实体删除单个实体EF里主从表关联数据的各种增删改查增加(增加从表数据、增加主从表数据)查询(查询导航属性为集合、查询导航属性为单个对象)修改(修改从表的外键)删除(删除主从表关系、删除主表数据、删除主从表数据、修改从表数据外键)补充内容SaveChanges方法提交多次操作DbSet.Add方法返回当前实体源码和系列文章导航注:本章节多次演示了各种删除,若要重复查看效果,需解开注释初始化数据的方法。一、EF对单个实体的增查改删增加单个实体: /// /// 增加单个实体 /// ... 阅读全文