[收藏]AreaRegistration 类

AreaRegistration 类

提供在 ASP.NET MVC 应用程序内注册一个或多个区域的方式。

继承层次结构:
SystemObject
System.Web.MvcAreaRegistration

 

命名空间:   System.Web.Mvc
程序集:  System.Web.Mvc(在 System.Web.Mvc.dll 中)
 
语法
 
Public MustInherit Class AreaRegistration
Dim instance As AreaRegistration
public abstract class AreaRegistration
public ref class AreaRegistration abstract
[<AbstractClassAttribute>]
type AreaRegistration =  class end
public abstract class AreaRegistration

AreaRegistration 类型公开以下成员。

构造函数
 名称说明
受保护方法 AreaRegistration 初始化 AreaRegistration 类的新实例。
属性
 名称说明
公共属性 AreaName 获取要注册的区域的名称。
方法
 名称说明
公共方法 Equals (从 Object 继承。)
受保护方法 Finalize (从 Object 继承。)
公共方法 GetHashCode (从 Object 继承。)
公共方法 GetType (从 Object 继承。)
受保护方法 MemberwiseClone (从 Object 继承。)
公共方法 静态成员 RegisterAllAreas 注册 ASP.NET MVC 应用程序中的所有区域。
公共方法 静态成员 RegisterAllAreas(Object) 使用指定的用户定义信息在 ASP.NET MVC 应用程序内注册所有区域。
公共方法 RegisterArea 使用指定区域的上下文信息在 ASP.NET MVC 应用程序内注册某个区域。
公共方法 ToString (从 Object 继承。)
注释

将区域添加到 ASP.NET MVC 应用程序时,Visual Studio 将创建一个名为AreaRegistration的文件。 该文件包含从 AreaRegistration 派生的类。 此类定义了AreaName属性和RegisterArea方法,该方法将为新区域注册路由信息。

下面的示例显示了为名为Blog的新区域创建的AreaRegistration类。

public class BlogAreaRegistration : AreaRegistration 

    public override string AreaName 
    { 
        get 
        { 
            return "Blog"
        } 
    } 
 
    public override void RegisterArea(AreaRegistrationContext context) 
    { 
        context.MapRoute( 
            "Blog_default"
            "Blog/{controller}/{action}/{id}"
            new { action = "Index", id = "" } 
        ); 
    } 
}
Public Class BlogAreaRegistration
    Inherits AreaRegistration

    Public Overrides ReadOnly Property AreaName() As String
        Get
            Return "Blog"
        End Get
    End Property

    Public Overrides Sub RegisterArea(ByVal context As System.Web.Mvc.AreaRegistrationContext)
        context.MapRoute( _
            "Blog_default", _
           "Blog/{controller}/{action}/{id}", _
            New With {.action = "Index", .id = ""} _
        )
    End Sub
End Class

Global.asax 文件包含在 ASP.NET MVC 应用程序启动时将调用的RegisterRoutes方法。 实现区域的任何应用程序的RegisterRoutes方法必须包含对 RegisterAllAreas 方法的调用。

下面的示例显示了包含对RegisterAllAreas的调用的RegisterRoutes方法。

public static void RegisterRoutes(RouteCollection routes) 

    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    AreaRegistration.RegisterAllAreas(); 
    routes.MapRoute( 
        "Default",                      // Route name 
        "{controller}/{action}/{id}",   // URL with parameters 
        new { controller = "Home", action = "Index", id = "" }  // Parameter defaults 
    ); 
}
[Visual Basic]
Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
    AreaRegistration.RegisterAllAreas()
    routes.MapRoute( _
        "Default", _
        "{controller}/{action}/{id}", _
        New With {.controller = "Home", .action = "Index", .id = ""} _
    )

End Sub
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。不保证所有实例成员都是线程安全的。
 
请参阅
posted @ 2014-05-19 15:19  大江孤水  阅读(296)  评论(0编辑  收藏  举报