摘要:模型绑定(Model Binding)是使用浏览器发起Http请求时的数据创建.NET对象的过程。我们每一次定义带参数的action方法时就已经依靠了模型绑定——这些参数对象是通过模型绑定创建的。这一章会介绍模型绑定的原理以及针对高级使用必要的定制模型绑定的技术。理解模型绑定(Understanding Model Binding)想象下我们创建了一个控制器如下:View Code using System; using System.Web.Mvc; using MvcApp.Models; namespace MvcApp.Controllers { public class ... 阅读全文
posted @ 2012-05-15 18:03 Rt-张雪飞 阅读(5017) 评论(10) 推荐(9) 编辑
摘要:在前面出现过Html.CheckBoxFox和Html.TextBoxFox等HTML helper方法,这些方法用来指定必要的HTML元素编辑数据。MVC框架还支持另一种方法实现,称为模板化视图helper(辅助)方法,在这些方法里面我们可以指定哪一个模型对象或属性被显示或编辑,并且让MVC框架自己判断应该呈现哪一种类型的HTML元素(是TextBox还是CheckBox)。这一章里面,会介绍这些方法并阐释怎样调优和完全替换model模版系统的部件1.使用模板化的视图Helpers(Using Templated View Helpers)模版化视图helpers的创意就是它们更加灵活。我们 阅读全文
posted @ 2012-04-23 22:49 Rt-张雪飞 阅读(5614) 评论(5) 推荐(15) 编辑
摘要:接着上一篇Views的笔记在视图里导入命名空间(Importing Namespaces into a View)Razor视图通过一套常用的命名空间编译,这为我们省去了在使用常用类时指定必要的命名空间的麻烦。如果需要使用我们自己定义的类就必须引入命名空间或者是使用类的完整名称(包含了命名空间),如下所示:View Code @{ ViewBag.Title = "Index"; } Here is some data: @DynamicData.Infrastructure.MyUtility.GetUsefulData()上面的例子使用了MyUtility类,里面有一个 阅读全文
posted @ 2012-04-12 00:35 Rt-张雪飞 阅读(2928) 评论(6) 推荐(5) 编辑
摘要:在前面很多的章节里面的,最常用的action result是视图呈现并返回给客户端的ViewResult类型。本章会专注于视图的原理,首先展示MVC框架是如何使用视图引擎处理ViewResults的,包括阐释如何创建一个视图引擎。接着介绍使用Razor视图引擎的一些技术。最后是关于创建和使用部分视图,子actions,以及Razor片段,这些都是涉及高效MVC开发的本质话题。创建一个自定义视图引擎(Creating a Custom View Engine)MVC框架包含了两个内置的,功能完善,容易理解的视图引擎:a.Razor引擎:MVC3里面引入的一个新的视图引擎,具有更加简洁和优雅的语法 阅读全文
posted @ 2012-04-06 23:45 Rt-张雪飞 阅读(3455) 评论(4) 推荐(6) 编辑
摘要:本章内容分为两个部分,第一部分:介绍关于controllers工作原理的高级功能,探究从请求到action方法执行的整个请求处理管道的组成部分并阐释控制这个过程的不同的方式;第二部分:介绍两种特殊的控制器,分别是:无会话(sessionless)控制器,异步(asynchronous)控制器.这些能够增进服务器的处理能力。这部分会阐释如何创建和使用它们,并且会说明在什么情况下使用它们。请求处理管道的组成(Request Processing Pipeline Components)我们的焦点放在第一部分的Controller Factory和Action Invoker上面,其实从命名上看已经 阅读全文
posted @ 2012-03-28 19:38 Rt-张雪飞 阅读(3961) 评论(8) 推荐(8) 编辑
摘要:过滤器(Filters)过滤器(Filters)向请求处理管道注入了额外的逻辑。他们提供了一种简单而优雅的方式实现了横切关注点,这个术语是针对整个应用程序使用的功能,并不能灵活的适用任何一个点,所以这个会打破分解关注点的模式。像日志,验证和缓存都是经典的横切关注点的例子。之所以称为过滤器(Filters),是因为这个术语同样应用于其他web应用程序框架里面,包括Ruby on Rails。然而,MVC框架里面的过滤器完全不同于ASP.NET平台里面的Request.Filters和Response.Filter对象,这两个对象是实现请求和响应流的传输(一种高级的并很少发生的活动)。当然,我们能 阅读全文
posted @ 2012-03-20 18:04 Rt-张雪飞 阅读(3197) 评论(8) 推荐(6) 编辑
摘要:重定向到文本URL(Redirecting to a Literal URL)最基本的重定向浏览器方式就是调用Redirect方法,该方法会返回一个RedirectResult类的实例。例如:public RedirectResult Redirect() {return RedirectPermanent("/Example/Index"); }当然我们可以根据自己的喜好来选择Redirect方法的重载,可以添加一个bool类型的参数指定是否永久重定向(不指定则是暂时重定向)进行单元测试:View Code [TestMethod] public void Redirec 阅读全文
posted @ 2012-03-11 01:27 Rt-张雪飞 阅读(2305) 评论(4) 推荐(4) 编辑
摘要:生成输出(Producing Output)在controller完成处理请求之后,通常需要生成一个响应。当我们通过直接实现IController接口创建一个简单的controller时,我们需要对处理请求的每一个方面负责,包括创建对客户端的响应。如果我们想发送一个HTML响应,那我们必须创建并且集合HTML数据,然后使用Response.Write方法将数据发送到客户端。类似地,如果我们想重定向用户到其他的URL,可以使用Response.Redirect方法。下面是具体的实例:View Code using System.Web.Mvc;using System.Web.Routing;n 阅读全文
posted @ 2012-03-09 00:42 Rt-张雪飞 阅读(3072) 评论(34) 推荐(7) 编辑
摘要:Controllers入门(Introducing the Controller)每一个针对应用程序的请求都是通过Controller处理的,controller自由地选择合适的方式来处理这些请求,只要它不偏离到View和Model所负责的区域。这样意味着我们不要把业务或数据存储的逻辑放到Controllers里面,也不要创建用户接口。在ASP.NET MVC框架里面,Controllers是包含必要的处理请求的.NET类。前面有解释Controller的角色是封装我们的应用程序逻辑。这意味着Controller是负责处理请求,实行对Model的操作,选择View呈现给用户。本次的笔记会介绍C 阅读全文
posted @ 2012-03-06 22:12 Rt-张雪飞 阅读(2573) 评论(2) 推荐(3) 编辑
摘要:使用AreasMVC框架支持在areas(区域)里面组织一个web应用程序,每一个area呈现应用程序的一个功能段,比如管理,订单,客户支持等等。这对于一个大的项目是非常有用的,因为将所有的controller,model,view都只是放在一套文件夹里面(整个项目所有的Controller都在一个文件夹下)会非常难管理的。这时area就非常有用了,每一个area都有自己的一套文件结构,如Controller,View,Model,通过area就可以保持相对的分离。这样做可以让程序的每一个功能块划分的更加明确,当有很多的开发人员合作开发时也可以避免相互冲突。下面会创建一个实例来说明Area的作 阅读全文
posted @ 2012-02-26 23:08 Rt-张雪飞 阅读(2952) 评论(3) 推荐(4) 编辑