Ejemplo n.º 1
0
        public override RouteData GetRouteData(System.Web.HttpContextBase httpContext)
        {
            var virtualPath = httpContext.Request.AppRelativeCurrentExecutionFilePath + httpContext.Request.PathInfo;//获取相对路径

            //  ~/mingrenmingyan/page-3
            virtualPath = virtualPath.Substring(2).Trim('/');//此时URL
            //判断是否是我们需要处理的URL,不是则返回null,匹配将会继续进行。
            if (!Validate.IsNavUrl(virtualPath))
            {
                return(null);
            }
            var PageIndex      = virtualPath.Split('/').Last().Split('-').Last();
            var Navigationname = virtualPath.Split('/').First();

            //尝试根据分类名称获取相应分类,忽略大小写
            var Navigation = navigationApp.GetEntityByEnCode(Navigationname, a => a.F_EnabledMark == true);

            if (Navigation == null)//如果分类是null,可能不是我们要处理的URL,返回null,让匹配继续进行
            {
                return(null);
            }

            //至此可以肯定是我们要处理的URL了
            var data = new RouteData(this, new MvcRouteHandler());//声明一个RouteData,添加相应的路由值

            data.Values.Add("controller", "Navigation");
            data.Values.Add("action", "index");
            data.Values.Add("id", Navigation.F_EnCode);
            data.Values.Add("pageIndex", PageIndex);

            return(data);//返回这个路由值将调用NavigationController.Index(Navigation.CategoeyID)方法。匹配终止
        }
Ejemplo n.º 2
0
        public override RouteData GetRouteData(HttpContextBase httpContext)
        {
            var virtualPath = httpContext.Request.AppRelativeCurrentExecutionFilePath + httpContext.Request.PathInfo;//获取相对路径

            //~/mingrenmingyan/154564654654/page-3
            virtualPath = virtualPath.Substring(2).Trim('/');
            if (!Validate.IsArticleUrl(virtualPath))
            {
                return(null);
            }
            //mingrenmingyan/154564654654
            string[] virtualPathStr = virtualPath.Split('/');
            var      PageIndex = "1"; var ArticleId = ""; var NavName = "";

            if (virtualPathStr.Length == 3)
            {
                NavName   = virtualPathStr[0].Trim();
                ArticleId = virtualPathStr[1].Trim();
                PageIndex = virtualPathStr[2].Split('-').Last();
            }
            else if (virtualPathStr.Length == 2)
            {
                NavName   = virtualPathStr[0].Trim();
                ArticleId = virtualPathStr[1].Trim();
            }
            else
            {
                return(null);
            }

            NavigationEntity navigationEntity = navigationApp.GetEntityByEnCode(NavName, a => a.F_EnabledMark == true);

            ArticleEntity articleEntity = articleApp.GetFormByEnCode(ArticleId);

            if (navigationEntity == null || !Validate.IsGuid(navigationEntity.F_Id) ||
                articleEntity == null || !Validate.IsGuid(articleEntity.F_Id) ||
                !articleEntity.F_NavID.Equals(navigationEntity.F_Id, StringComparison.OrdinalIgnoreCase))
            {
                throw new ArgumentNullException("Article");
            }

            var data = new RouteData(this, new MvcRouteHandler());//声明一个RouteData,添加相应的路由值

            data.Values.Add("controller", "Articles");
            data.Values.Add("action", "index");
            data.Values.Add("id", articleEntity.F_EnCode);
            data.Values.Add("pageIndex", PageIndex);

            return(data);//返回这个路由值将调用NavigationController.Index(Navigation.CategoeyID)方法。匹配终止
        }
Ejemplo n.º 3
0
        public PartialViewResult Header()
        {
            var gushiEntity = navApp.GetEntityByEnCode("gushi", a => a.F_EnabledMark == true);

            List <NavigationEntity> NavgushiList = navApp.GetChildList(gushiEntity.F_Id, false).Where(a => a.F_IsNav == true).ToList();

            foreach (NavigationEntity item in NavgushiList)
            {
                NavigationEntity ParentNav = navApp.GetForm(item.F_ParentId);
                if (ParentNav.F_Id == gushiEntity.F_Id)
                {
                    item.PatentEnCode = "";
                }
                else
                {
                    item.PatentEnCode = ParentNav.F_EnCode;
                }
            }
            ViewBag.Navgushi = NavgushiList;
            var wenxueEntity = navApp.GetEntityByEnCode("wenxue", a => a.F_EnabledMark == true);

            ViewBag.Navwenxue = navApp.GetChildList(wenxueEntity.F_Id, false).Where(a => a.F_IsNav == true).ToList();
            return(PartialView());
        }
Ejemplo n.º 4
0
        public ActionResult Index()
        {
            //最新更新
            List <ArticleEntity> NewestArticle = articleApp.GetList(a => a.F_EnabledMark == true && a.F_CreatorTime <= DateTime.Now);

            foreach (var item in NewestArticle)
            {
                item.NavEntity = navApp.GetForm(item.F_NavID);
                item.F_Link    = "/" + item.NavEntity.F_EnCode + "/" + item.F_EnCode;
            }
            ViewBag.NewestArticle = NewestArticle.ToJson();

            //热门排行
            ViewBag.HotArticle = articleApp.GetHotList();

            var gushiEntity = navApp.GetEntityByEnCode("gushi", a => a.F_EnabledMark == true);
            var ParentGushi = navApp.GetList(a => a.F_ParentId == gushiEntity.F_Id && a.F_IsRecommend == true);

            foreach (var item in ParentGushi)
            {
                List <NavigationEntity> ChildNavigationList   = navApp.GetChildList(item.F_Id, false);
                List <NavigationEntity> ReChildNavigationList = ChildNavigationList.FindAll(a => a.F_IsRecommend == true);
                string navIds = ChildNavigationList.Select(a => a.F_Id).ToJson(",").Replace("\"", "'").TrimStart('[').TrimEnd(']');
                List <ArticleEntity> ChildArticleList = articleApp.GetList(navIds, "", " F_EnabledMark=1 ", "F_CreatorTime DESC,F_SortCode ASC ").Take(12).ToList();
                foreach (var itemArticle in ChildArticleList)
                {
                    itemArticle.NavEntity = navApp.GetForm(itemArticle.F_NavID);
                }
                item.ChildArticleList    = ChildArticleList;
                item.ChildNavigationList = ReChildNavigationList;
                //推荐专题
                item.RecommendSpecial = specialApp.GetSpecialList(item.F_Id, true);
            }
            ViewBag.RecommendGushi = ParentGushi;

            return(View());
        }