Example #1
0
    //重写该方法返回数据给Handler
    public override RouteData GetRouteData(HttpContextBase httpContext)
    {
        string           domain = httpContext.Request.Url.Host;
        string           path   = httpContext.Request.Path;
        RouteData        data   = null;//绑定Handler,这里完成后交给Handler
        M_IDC_DomainList model  = RouteHelper.GetModelByDomain(domain);

        if (RouteHelper.RouteDT == null || RouteHelper.RouteDT.Rows.Count < 1 || model == null)
        {
            new PageRouteHandler("~" + httpContext.Request.FilePath);
        }
        else
        {
            switch (model.SType)
            {
            case 1:    //directory
                #region 后台目录指向
            {
                data = new RouteData(this, RouteHandler);
                //用户访问的路径
                string filepath = httpContext.Request.FilePath.Equals("/") ? "default" : httpContext.Request.FilePath.TrimStart('/');
                filepath = filepath.Split('.')[0];        //不保留路径
                //替换占位符为实际文件路径(/test/test.aspx)
                model.Url = model.Url.Replace("*", filepath);
                //将实际访问的Url写入
                data.Values["url"] = model.Url;
                PushParam(data, model.Url);
                break;
            }

                #endregion
            case 2:    //Wix,  mydomain.z01.com/page
            {
                data = new RouteData(this, RouteHandler);
                //string mydomain = domain.Split('.')[0];
                string url = "/Design/PreView.aspx";        //domain=mydomain&page=page
                if (string.IsNullOrEmpty(path) || path.Equals("/"))
                {
                    path = "/index";
                }
                data.Values["url"] = url;
                PushParam(data, url + "?domain=" + domain + "&path=" + path);
            }
            break;
            }
        }
        return(data);
    }