易截截图软件、单文件、免安装、纯绿色、仅160KB

13个不可不知的ASP.NET MVC扩展点

ASP.NET MVC设计的主要原则之一是可扩展性。处理管线(processing pipeline)上的所有(或大多数)东西都是可替换的。因此,如果您不喜欢ASP.NET MVC所使用的约定(或缺乏某些约定),您可以创建自己的服务来支持您的约定,并将其注入到主管线中。
在本文中,我们将从管线开始直到视图呈现,逐一向您展示每个ASP.NET MVC开发者都必须了解13个扩展点。
1.ASP.NET MVC扩展之RouteConstraint
通常情况下你可以使用正则表达式对url参数进行约束,但如果您的约束不仅仅取决于单一参数,您可以实现 IRouteConstrains的方法,并在其中添加你的验证逻辑。
比如对日期的验证,url中可能会包含年、月、日,而你需要验证这三者是否可以组合成一个有效的日期。
2.ASP.NET MVC扩展之RouteHandler
RouteHandler是在路由选择之后进行处理的组件,它并不仅仅针对ASP.NET MVC。显然,如果您改变了RouteHandler,那么对请求的处理将不再使用ASP.NET MVC,但这在您使用其他HttpHandler或经典的WebForm进行路由处理时却是非常有用的。
3.ASP.NET MVC扩展之ControllerFactory
ControllerFactory是基于路由的组件,它选择正确的controller并对其实例化。 default factory会查找实现了IController并且以Controller结尾的类,然后通过反射使用无参构造函数进行实例化。
但如果您希望使用依赖注入,就不能再使用default factory,而必须使用支持IoC的controller factory。MvcContrib和Ninject Controller Factory都包含支持IoC容器的controller factory。
4.ASP.NET MVC扩展之ActionInvoker
ActionInvoker顾名思义是负责调用(invoke)action的。默认的action invoker通过方法名、action名或其他可能的selector attribute来查找action,然后调用action方法以及定义的filter,最终执行得到action result。
你会发现大部分执行管线存在于ControllerActionInvoker类的逻辑之中。因此,如果希望改变这些约定,如action方法的选择逻辑、http参数映射到action参数的方式、选择和执行filter的方式等,您需要扩展该类并重写需要修改的方法。
可以参阅NinjectActionInvoker I developed to allow injection of dependencies inside filters。
5.ASP.NET MVC扩展之ActionMethodSelectorAttribute
使用默认的action invoker时,action的选择是基于名称的。您也可以实现自己的Method Selector以改善对于action的选择。在框架中已经包含了AcceptVerbs特性,它允许您指定使用哪


相关文档:

asp.net 页面生存周期 转

1. PreInit()在这个页面级的事件中,所有在设计时创建的控件都将被用默认值做初始化。例如,如果你有一个Text属性值为"Hello"的TextBox控件,则此时这个属性被设置。我们也可以在这里动态的创建控件。这个事件仅仅发生在页级别的类中,用户控件和母版页没有这个事件。下面的代码示例了如何重写这个方法以增加你的自定义代码 ......

asp.net 客户端缓存(ClientCaching)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
StartClientCaching();
......

【转贴】ASP.NET刷新页面的六种方法

原文出处:http://www.cnblogs.com/raymond19840709/archive/2007/09/11/890045.html
作者:大口仔
第一: 
private void Button1_Click( object sender, System.EventArgs e )   

    Response.Redirect( Request.Url.ToSt ......

ASP.NET 2.0缓存 (转)

一、页输出缓存
1.设置 ASP.NET 页缓存的两种方式
1.1 以声明方式设置 ASP.NET 页的缓存
以声明方式设置 ASP.NET 页的缓存的方法是在页中使用 @ OutputCache 指令,它的常用属性如下:
 
程序代码
<%@ OutputCache Duration="" VaryByParam="" VaryByControl="" VaryByHeader="" VaryByCustom="" CacheProfi ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号