随笔分类 - [61]MVC
-
使用传入的总记录数实现一条sql语句完成分页查询
摘要:使用传入的总记录数实现一条sql语句完成分页查询问题:在传统的分页查询的实现中不可避免的需要两条sql语句,一条用于查询数据一条用于查询总记录数。如下面的实际代码所示:Img1当然如果使用存储过程的话是可以渐少一次数据库来回的,但是它依然是两条sql语句,一条查数据一条查总记录数。但我们在架构层面拒绝使用存储过程,因为它将逻辑分散在了应用程序和数据库中,不好维护,并且在SqlServer2008中也没有足够的证据证明存储过程更高效。很多人的直觉认为查询总记录数的那行没有必要,但是直觉只是第一步,项目中需要的是解决方案。解决方案:从客户端输入总记录数,从而避免一次对总记录数的查询。首先将分页查询 阅读全文
-
asp.net mvc4 使用 System.Web.Optimization 对javascript和style的引入、代码合并和压缩的优化(ScriptBundle,StyleBundle,Bundling and Minification )
摘要:asp.net mvc4 使用 System.Web.Optimization 对javascript和style的引入、代码合并和压缩的优化(ScriptBundle,StyleBundle,Bundling and Minification )Bundling and Minification两个单词对今天的内容有个比较好的总结。问题所在一、 在asp.net包括mvc项目中,引入js和css也许有人认为是个很容易和很简单操作的事情,vs自带的拖动功能可以很简单的实现引入工作,甚至不需要编写任何代码,但是这样会导致路径问题,母版页和用户控件的问题尤为严重。二、由于现在web项目的庞大,页面 阅读全文
-
ASP.NET Web API消息处理管道:Self Host下的消息处理管道[下篇]
摘要:ASP.NET Web API消息处理管道:Self Host下的消息处理管道[下篇]我们知道ASP.NET Web API借助于HttpSelfHostServer以Self Host模式寄宿于当前应用程序中。而通过《上篇》的介绍我们知道Self Host下请求的监听、接收和响应是利用HttpBinding实现的,那么HttpSelfHostServer与上面介绍的HttpBinding又有何关系?HttpSelfHostServer与ASP.NET Web API的消息处理管道又是如何集成的呢?[本文已经同步到《How ASP.NET Web API Works?》]如下面的代码片断所示, 阅读全文
-
ASP.NET MVC从视图传递多个模型到Controller
摘要:ASP.NET MVC从视图传递多个模型到Controller从后台组织好数据然后传递到页面倒是水到渠成很方便,因为MVC自身就将这样的需求内建到了这个系统中。我只需要在后台组织好一个List 或IEnumerable类型的变量,将需要传递的数据模型扔进去便可。比如这里我们向视图返回5条product信息在页面进行展示,仅仅是返回这么简单。然后在页面我们就毫不费力地得到了后台传过来的数据模型,然后进行显示即可。但问题是,如何又将多个模型传回后台去呢。一个form一般只传递一个模型,我们可以在JavaScript里序列化多个模型然后通过ajax 传递回去。1.首先改造页面,假设在页面有很多输入框 阅读全文
-
Easyui + asp.net MVC 系列教程 完成登录
摘要:Easyui + asp.net MVC 系列教程 第09-17 节 完成登录 高清录制前面八节 在这里Easyui + asp.net mvc + sqlite 开发教程(录屏)适合入门在接下来的 几节里面 我们完成登录功能 打开页面 首先进入登录页面 只有登录成功了 才能进入管理页面我们添加一个 登录 页面 使用easyui 的window 控件 title>Login 用户名: ... 阅读全文
-
ASP.NET Web API的消息处理管道: Self Host下的消息处理管道[上篇]
摘要:ASP.NET Web API的消息处理管道: Self Host下的消息处理管道[上篇]ASP.NET Web API服务端框架核心是一个独立于具体寄宿环境的消息处理管道,它不关心请求消息来源于何处,响应消息又回归于何方。说得具体点,这个由若然HttpMessageHandler的有序组合构成的消息处理管道并没有考虑对请求的监听、接收和响应,因为它们工作的方式取决于具体的寄宿方法。在Self Host寄宿模式下,请求的监听、接收和和最终响应是如何解决的呢?[本文已经同步到《How ASP.NET Web API Works?》]和WCF服务一样,我们可以采用Self Host的方式将Web 阅读全文
-
Entity Framework在Asp.net MVC中的实现One Context Per Request(附源码)
摘要:Entity Framework在Asp.net MVC中的实现One Context Per Request(附源码)上篇中"Entity Framework中的Identity map和Unit of Work模式", 由于EF中的Identity map和Unit of Work模式,EF体现出来如下特性:唯一性:在一个Context的生命周期中,一个Entity只会有一个实例,任何对该实例的修改,即使这些改动没有保存到数据库中,修改都会影响到整个Context的生命周期。事务性:所有对于Entity的修改,都会在调用SaveChange方法的时候,一起保存到数据库中 阅读全文
-
MVC4+WebApi+Redis Session共享练习(下)
摘要:MVC4+WebApi+Redis Session共享练习(下)上一篇文章我们主要讲解了一些webApi和redis缓存操作,这篇文章我们主要说一些MVC相关的知识(过滤器和错误处理),及采用ajax调用webApi服务。本篇例子采用的开发环境为:VS2010(sp1)、MVC4,所有的数据都是与webApi服务进行交互。1、先来一张项目结构图LoginAttribute.cs为我们定义的Action过滤器,主要检测是否登陆。因为我们要测试sessioin共享,就做了一个登陆界面,存储用户名。BaseController.cs 公共控制器,主要重写OnException方法对错误捕捉。Home 阅读全文
-
重构MVC多条件分页解决方案
摘要:重构MVC多条件+分页解决方案为支持MVC的验证,无刷新查询,EF,以及让代码可读性更强一点,所以就重构了下原来的解决方案。这里就简单讲下使用方法吧:Model:继承PagerBase:SearchModelpublic class SearchModel : PagerBase { public SearchModel() { AddFields("UserName", "Age", "Sex"); } [Required(ErrorMessage = "需要输入 用户名")] public s... 阅读全文
-
一步一步实战扩展 ASP.NET Route,实现小写 URL、个性化 URL
摘要:一步一步实战扩展 ASP.NET Route,实现小写 URL、个性化 URL介绍不知道大家在使用 ASP.NET MVC 时有没有一些扩展要求,反正我是有很多。在使用 MVC 这几年(PS:我是从 1.0 开始学,2.0、3.0 开发至今),我深深地觉得 MVC 的扩展性真是太好了,几乎你大部分的“合理”需求,用 MVC 都能实现。好了,废话不多说了,今天我就实战演示如何扩展 ASP.NET Route,希望能帮助到你。小写 URL我想很多朋友和我一样,使用 ASP.NET MVC 时都想要小写的 URL。一般除非你在开发时手动把 Controller、Action 的名字建成小写,或者在 阅读全文
-
MVC4+WebApi+Redis Session共享练习(上)
摘要:MVC4+WebApi+Redis Session共享练习(上)这几天生病了,也没有心情写博客,北京医院真心伤不起呀,钱不少花,病没治好,还增加了新病,哎不说了,周末还得去大医院检查一下,趁女盆友还没有回来,把前几天写的东西总结一下。本文也会接触一点webApi的东东,自己最近也一直在看,算是入门了吧。本文用到的知识点有MVC4、knockout.js、EntityFramework、WebApi、Redis缓存及基于Redis缓存的Session共享,都是很基础的操作,MVC我会介绍过滤器及错误捕捉,EntityFramework增删改数据,WebApi做为数据通信以及Redis的基本缓存操 阅读全文
-
依赖注入(DI)和Ninject
摘要:[ASP.NET MVC 小牛之路]04 - 依赖注入(DI)和Ninject本文目录:1.为什么需要依赖注入2.什么是依赖注入3.使用NuGet安装库4.使用Ninject的一般步骤5.Ninject如何提高编码效率6.Ninject的绑定方式7.在ASP.NET MVC中使用Ninject为什么需要依赖注入在[ASP.NET MVC 小牛之路]系列的理解MVC模式文章中,我们提到MVC的一个重要特征是关注点分离(separation of concerns)。我们希望应用程序的各部分组件尽可能多的相互独立、尽可能少的相互依赖。我们的理想情况是:一个组件可以不知道也可以不关心其他的组件,但通 阅读全文
-
Mvc利用淘宝Kissy uploader实现图片批量上传附带瀑布流的照片墙
摘要:Mvc利用淘宝Kissy uploader实现图片批量上传附带瀑布流的照片墙前言 KISSY是由阿里集团前端工程师们发起创建的一个开源 JS 框架。它具备模块化、高扩展性、组件齐全,接口一致、自主开发、适合多种应用场景等特性。本人在一次项目中层使用这个uploader组件。 关于kissy uploader: Uploader是非常强大的异步文件上传组件,支持ajax、iframe、flash三套方案,实现浏览器的全兼容,调用非常简单,内置多套主题支持和常用插件,比如验证、图片预览、进度条等。广泛应用于淘宝网,比如退款系统、爱逛街、二手、拍卖、我的淘宝、卖家中心、导购中心等。拥有非常不错... 阅读全文
-
ASP.NET Web API之消息[拦截]处理
摘要:ASP.NET Web API之消息[拦截]处理标题相当难取,内容也许和您想的不一样,而且网上已经有很多这方面的资料了,我不过是在实践过程中作下记录。废话少说,直接开始。Exception当服务端抛出未处理异常时,most exceptions are translated into an HTTP response with status code 500, Internal Server Error.当然我们也可以抛出一个特殊的异常HttpResponseException,它将被直接写入响应流,而不会被转成500。public Product GetProduct(int id){ .. 阅读全文
-
分享Mvc3+NInject+EF+LigerUI权限系统
摘要:分享Mvc3+NInject+EF+LigerUI权限系统 前段时间时不时看到有园友的分享权限系统,于是本人突发奇想,也想写一个玩玩,就利用晚上时间,陆陆续续花了一周多样子,写了如今这个权限系统,这个权限系统具有组织结构、用户、角色、菜单这四个功能,组织结构下挂用户,一个用户有多个角色,一个角色可以被不同的用户拥有,一个角色对多个菜单,一个菜单对多个角色。总结起来就是,组织结构与用户一对多、用户与角色多对多、角色与菜单多对多。 下面是项目结构截图: 简单的三层架构,正如我一开始所说,这只是写着好玩的,不针对任何的业务:).这个系统里面有EF一对多,多对多的增删改,对于还不是很熟悉EF的童... 阅读全文
-
ASP.NET Web API的消息处理管道:"龙头"HttpServer
摘要:ASP.NET Web API的消息处理管道:"龙头"HttpServer一般来说,对于构成ASP.NET Web API消息处理管道的所有HttpMessageHandler来说,除了出于尾端的那一个之外,其余的均为DelegatingHandler,那么通过InnerHandler属性维持着“下一个” HttpMessageHandler。作为这个HttpMessageHandler链“龙头”的则是一个类型为HttpServer的对象。其实从其命名也可以看出这一点:这是因为整个消息处理管道由HttpServer“牵头”,所以才称它为“服务器(Server)”。[本文已经 阅读全文
-
MVC3.0+knockout.js+Ajax 实现简单的增删改查
摘要:MVC3.0+knockout.js+Ajax 实现简单的增删改查自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+knockout.js+webAPI来实现这个小DEMO的,无奈公司用的开发环境是VS2010只安装了MVC3.0。那就先练习一下MVC和knockout吧。博客园里有很多这样的文章,但是觉得还是要自己亲自动手写一下。 本文不讲解knockout.js和webAPI ,不了解的同学可以百度一下。下一篇博文将采用webAPI和Redis缓存作为服务端重写该项目。 我们采用MVC和knockout.js实 阅读全文
-
MVC3+EF5.0 code first+Flexigrid+ajax请求+jquery dialog 增删改查
摘要:MVC3+EF5.0 code first+Flexigrid+ajax请求+jquery dialog 增删改查本文的目的: 1、MVC3项目简单配置EF code first生成并初始化数据库。 2、利用flexigrid展示并使用ajax展示数据,支持显示列增减,显示列排序,显示列模糊查询,熟悉表格控件的使用。 3、利用jquery ajax请求实现增删查改 4、利用jquery dialog弹出层实现添加,修改。 5、扩展方法及表达式树构建lambda表达式项目截图说明附flexigrid参数说明(可以去flexigrid.js文件中查看配置):height: 200, //... 阅读全文
-
MVC+Front Controller
摘要:MVC+Front Controller在我前面一篇博文《逃脱Asp.Net MVC框架的枷锁,使用Razor视图引擎》发表之后,很多人关心,脱离了之后怎么办?那么这可以说是它的续篇了。同时,这也是eLiteWeb开源软件的一部分。MVC + Front Controller我 们常常提到的MVC中作为Controller的C。其实有两项任务,一个是处理Http请求,另一个是对请求中的用户数据进行的处理。前者,有:安全认 证,Url映射等。Front Controller 模式就是把这个C进一步分离。两个责任两个类(单一责任原则)。因此,这里给我的MVC模式,赋予新的内涵C => Com 阅读全文
-
HttpMessageHandler管道[上篇]
摘要:HttpMessageHandler管道[上篇]整个ASP.NET Web API服务端框架采用管道式设计,这个用于“处理请求、响应回复”的管道本质上就是一组HttpMessageHandler的有序组合。这是一个“双向管道”,具有相反方向的请求消息和响应消息同时在这个管道中流动。对于与一个出于中间位置的HttpMessageHandler来说,当前一个HttpMessageHandler完成了对请求的处理之后,会将处理后的请求传递给自己。定义在自身的请求消息处理操作将直接作用于该请求消息之上,一旦处理完毕再将处理后的请求往后传递。对于反方向的响应消息的处理方式与此类似。[本文已经同步到《Ho 阅读全文