随笔分类 - [61]MVC
-
springmvc
摘要:第一章 Web MVC简介——跟开涛学springmvcWeb MVC简介1.1、Web开发中的请求-响应模型:在Web世界里,具体步骤如下:1、 Web浏览器(如IE)发起请求,如访问http://sishuok.com2、 Web服务器(如Tomcat)接收请求,处理请求(比如用户新增,则将把用户保存一下),最后产生响应(一般为html)。3、web服务器处理完成后,返回内容给web客户端(一般就是我们的浏览器),客户端对接收的内容进行处理(如web浏览器将会对接收到的html内容进行渲染以展示给客户)。因此,在Web世界里:都是Web客户端发起请求,Web服务器接收、处理并产生响应。一般 阅读全文
-
ASP.NET 路由实现页面静态化
摘要:分享技术生活设计资讯ASP.NET 路由实现页面静态化三月 31 日, 2012 年 12:36 下午 - Bykeepfool发表评论页面静态化最大的好处是利于SEO,即使是伪静态,搜索引擎也会觉得这是一个较为友好的Url。Url的友好也取决于其命名,为一篇描述古代文学的页面起名用ancient-literature.html当然比随便起的名字例如aa.html之流要友好。页面静态化并不代表你一定要用后缀名为.html或.htm的链接来显示你的页面,你完全可以不用任何后缀名(就像MVC一样),只要Url结构良好。实现静态化的三个目标:1. 实现页面静态化,页面中的链接都用.html来表示,但 阅读全文
-
MVC in MFC or WTL
摘要:关于MVC MVC是一种分离用户界面和业务逻辑的开发架构。 ● 模型(Model):体现应用程序业务信息(数据)和业务数据的处理。所有有关数据库的操作只限制在该模型中。 ●视图(View):代表用户交互界面 ●控制器(Contrlloer):控制器负责接收、截取用户请求(如键盘输入,鼠标点击),但不处理业务信息,它只把用户的信息传递给模型,告诉模型该做什么,由模型返回最终的处理结果。控制器再选择符合要求的视图返回给用户。背景 做Web或者Java的对MVC会比较熟悉,对于用MFC开发桌面应用程序的developer来说,已经习惯于拖一个按钮,然后双击,在CxxxDlg.cpp中添加事件响应。随 阅读全文
-
Asp.Net MVC in Visual Studio 11 Beta - Not Working Upgrading an ASP.NET MVC 3 Project to ASP.NET MVC 4
摘要:Compiler Error Message:CS0433: The type 'System.Web.WebPages.HelperPage' exists in both 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Web.WebPages\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.dll' and 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Web.WebPages\v4.0 阅读全文
-
MVC3 项目总结
摘要:验证 Validation多样化验证规则http://www.cnblogs.com/xling/archive/2012/07/11/2587002.html最常见的验证方式是:在实体的属性上加特性(Attribute)的方式来完成基本的数据验证. 比如 Required, StringLength, Range 等. 为了保持实体类的POCO ( Plain Old CLR Objects, 所谓的POCO就是那些不包括INSERT、ADD、DEL等数据持久化操作的以及不包括任何业务逻辑功能的原始类。只包含最基本的GETTER 和SETTER).,一般是对实体类声明一个伴随类(Metada 阅读全文
-
MVC系列培训视频
摘要:MVC系列培训视频1、MVC介绍传统的WebForm存在的问题什么是MVCWebForm与MVC比较MVC与三层架构MVCDemo2、Controller与ViewController向View传值View向Controller传值HtmlHelper介绍常用Html介绍3、Filter介绍什么是FilterFilter常用Filter与权限管理4、MVC实践后续持续更新中,敬请期待........................................................................................................... 阅读全文
-
MVC3使用Unity实现依赖注入接口与于实现类自动注册
摘要:MVC3使用Unity实现依赖注入接口与于实现类自动注册 关于依赖注入 控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题。应用控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用,传递给它。也可以说,依赖被注入到对象中。所以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。 控制反转还有一个名字叫做依赖注入(Dependency Injection),简称DI。相对而言对于.Net开发者来说听到得更多的是依赖注入这个名词。实现依赖注入的框架有很多,如Sp... 阅读全文
-
使用routing
摘要:看了重典的两篇文章System.Web.Routing入门及进阶 上篇System.Web.Routing入门及进阶 下篇仿照其中的进行了操作,发现怎么不都起作用,非常奇怪,搜了好多才找到了解决方案是在MSDN上找到的,如下:To configure an ASP.NET Web site project for routingIn the application's Web.config file, add the ASP.NET routing assembly to theassemblieselement, as shown in the following example:C 阅读全文
-
三层架构+ASP.NET MVC 架构的快速搭建
摘要:上一篇博客中《两天完成一个小型工程报价系统》,许多朋友向我讨源码。其实我之后没发了,确实那种三层架构没什么意思,只是我个人的孤芳自赏,很多的处理都不是很成熟。所以我重新架构了一番,以一个小例子来阐述我的架构模式,当然,这和企业级的架构还是差距很大,不过,还是值得一读。不积硅步,无以至江海,只有从小细节慢慢领悟,步步为营,才能设计出优秀的企业级架构。 重构后的架构图:解决方案里项目设计:数据库访问层接口设计:IBaseDaoRepository模式这儿使用了Repository模式,抽象出一个公共的接口IBaseDao,IBaseDao接口中定义了一系列契约(CRUD),不管我的我数据访问用了. 阅读全文
-
第六话 Asp.Net MVC 3.0
摘要:我们已经可以显示简单的视图,但是我们仍然是模拟IProductRepository实现返回的是一些测试数据,这个时候我们就需要相应的数据库来存储我们项目相关的东西,所以我们需要创建数据库。我们将使用SQL Server作为数据库,我们将访问数据库使用的实体框架(EF)EntityFramework,这是.Net ORM框架。(ORM框架:称"对象关系映射",ORM 主要是把数据库中的关系数据映射称为程序中的对象).我们使用实体框架有几个原因。首先,它是简单和易懂容易上手。第二,用LINQ是意会一流.第三个原因是,它实际上是相当不错的。早期的版本有一点相对不理想的,但是随着版 阅读全文
-
Asp.Net MVC 3.0
摘要:前面也有说"控制反转"所谓的依赖注入(Dependency Injection)简称DI。针对它有一款不错的容器,那就是"Ninject",这东西是一个简单易用的东西。话不多说,直接开始吧!使用Ninject先用控制台程序玩玩首先定义一个类,接口以及它的实现,代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Ninject_Tools{ public class Product : Object { public 阅读全文
-
认识ASP.NET MVC的5种AuthorizationFilter
摘要:在总体介绍了筛选器及其提供机制(《深入探讨ASP.NET MVC的筛选器》)之后,我们按照执行的先后顺序对四种不同的筛选器进行单独介绍,首先来介绍最先执行的AuthorizationFilter。从命名来看,AuthorizationFilter用于完成授权相关的工作,所以它应该在Action方法被调用之前执行才能起到授权的作用。不仅限于授权,如果我们希望目标Action方法被调用之前中断执行的流程“做点什么”,都可以以AuthorizationFilter的形式来实现。[本文已经同步到《How ASP.NET MVC Works?》中]目录一、IAuthorizationFilter二、Au 阅读全文
-
深入探讨ASP.NET MVC的筛选器
摘要:在ActionInvoker对Action的执行过程中,除了通过利用ActionDescriptor对Action方法的执行,以及之前进行的Model绑定与验证之外,还具有一个重要的工作,那就是对相关筛选器(Filter)的执行。ASP.NET MVC的筛选器是一种基于AOP(面向方面编程)的设计,我们将一些非业务的逻辑实现在相应的筛选器中,然后以一种横切(Crosscutting)的方式应用到对应的Action方法。当Action方法执行前后,这些筛选器会自动执行。ASP.NET MVC提供了四种类型的筛选器(AuthorizationFilter、ActionFilter、ResultFi 阅读全文
-
Razor页面中的共享namespace不起作用了
摘要:Razor页面中的共享namespace不起作用了(解决自定义扩展方法不能识别的问题)在MVC2时代,我们如果希望在页面上引入一个namespace,可以这样来实现1 <%@ Import Namespace="Web.Helpers" %>如果名称空间是所有页面都需要的,像System.Web.Mvc这种类型的,我们可以把它写在web.config里,像这样 1 <pages> 2 <namespaces > 3 <add namespace="System.Web.Helpers" /> 4 <a 阅读全文
-
模拟HttpContext 实现ASP.NET MVC 的单元测试
摘要:众所周知 ASP.NET MVC 的一个显著优势即可以很方便的实现单元测试,但在我们测试过程中经常要用到HttpContext,而默认情况下单元测试框架是不提供HttpContext的模拟的,本文通过MOQ框架实现对HttpContext的模拟从而实现更便利的单元测试。一、Moq框架使用Moq是一个非常优秀的模拟框架,可以实现对接口成员的模拟,常用在TDD中。 可在此处下载http://code.google.com/p/moq/downloads/list也可以通过Nuget直接下载。先来看一个简单的moq应用1. 定义一个简单接口且不需要实现接口(Moq就是模拟框架因此不需要实现)View 阅读全文
-
PartialView中的页面重定向
摘要:在MVC的每个action中,都可以指定一种返回页面的类型,可以是ActionResult,这表示返回的页面为view或者是一个PartialView,前台是一个全整页面,后台是页面的一部分。在以ASPX为页面引擎时,PartialView被称为分部视图,扩展名为ASCX,与webform中的用户控件是一样的,即页面中的一个部分;而使用razor为页面引擎时,PartialView扩展名还是cshtml,这一点感觉与普通页面有些混乱。不过,这不是今天我要讲的重点,今天的重点间在partialview中进行页面重定向的方式。第一种情况:在PartialView中进行表单提示操作后,需要返回别一个 阅读全文
-
AJAX(Professional ASP.NET MVC 3
摘要:[翻译]《ASP.NET MVC 3 高级编程》第八章:AJAX(Professional ASP.NET MVC 3 --- Chapter 9: AJAX)关注焦点所有你想知道的jQueryAjax Helper深入了解客户端验证使用jQuery插件现在很少见有Web应用不使用AJAX技术的。AJAX是Asynchronous JavaScript and XML的缩写。在实践中,AJAX主张使用一切技术来构建最佳用户体验的Web应用程序。在实际使用中,使用到了一些异步通信,然后再响应时,再辅助一些有趣的动画和颜色的变化。如果你可以为用户提供更好的应用程序的用户体验,让他们可以更高效的工作 阅读全文
-
Html.BeginForm与Ajax.BeginForm
摘要:Html.BeginForm与Ajax.BeginForm都是MVC架构中的表单元素,它们从字面上可以看到区别,即Html.BeginForm是普通的表单提交,而Ajax.BeginForm是支持异步的表单提交,这对于我们开发者来说是一个福音,我们不用再自己去用JQ代码了,直接用MVC自代的Ajax.BeginForm就可以很容易的完成一个异步的表单提交动作。Html.BeginForm的原型解释: 1 @using (Html.BeginForm()) {} //提交到当前页面 2 3 @using (Html.BeginForm(new {} )) {} //提交到当前页面,并可以传递参. 阅读全文
-
RenderAction与RenderPartial及一个页面多个表单提交
摘要:今天做项目的时候发现了个问题,是关于RenderAction和RenderPartial的,它们在MVC2的时候就出现了,不是MVC3的新东西,那为什么要拿出来说呢,其主要原因在于,我对它们的了解在MVC3时代有了更上一层的认识,呵呵。先说一下他们的作用:RenderAction:渲染分部视图到页面上,他要求你提供一下Action的名称和Controller的名称RenderPartial:渲染分部视图到页面上,他要求你提代一个分部视图的名称,即它的路径,如果是当然Controller下或者Shared下的页面,直接写它的名称即可再说一下他们的区别:RenderAction:它是走contro 阅读全文
-
--2asp.net mvc 4 in action
摘要:3.2.3 带视图模型的强类型视图当使用基于Razor的视图时,视图默认继承两个类型:System.Web.Mvc.WebViewPage或者System.Web.Mvc.WebViewPage<T>。泛型WebViewPage<T>继承自WebViewPage,但是提供了一些非泛型WebViewPage类里没有的独特的补充。 下面展示了WebViewPage<T>的主干成员定义:清单 3.3publicclassWebViewPage<TModel>:WebViewPage{publicnewAjaxHelper<TModel>Aj 阅读全文