简单实际的方式分隔Admin 区域

  1. Add these 9 lines of code to your app

    public class AdminRouteHandler : IRouteHandler
    {
            public IHttpHandler GetHttpHandler(RequestContext requestContext)
            {
                    RouteData routeData = requestContext.RouteData;
                    routeData.Values["controller"] = "Admin" + requestContext.RouteData.GetRequiredString("controller");
                    return new MvcHandler(requestContext);
            }
    }      
  2. Add a new route in your Global.asax.cs

            routes.Add(
            "AdminRoutes", // Route name
            new Route(
                    "Admin/{controller}/{action}/{id}", // URL with parameters
                    new RouteValueDictionary(new { controller="Video", action = "Index", id=""}),
                    new AdminRouteHandler()) // Parameter defaults
            );      

Tada! You’re done! There’s one catch…

Controllers in the Admin area must start with the “Admin” prefix.

File Names Start With Admin

You then create appropriate folders for views as usual.

View folders work as usual

This is a bit of a hack, but I like the fact that it requires very little code and it’s very simple :) Also, it would be very easy to tweak this code to allow for general partitioning of controllers by prefix, so you could have a “Admin” area, a “Mobile” area etc.

posted @ 2011-03-22 21:01  Sphix  阅读(149)  评论(0编辑  收藏  举报