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)方法。匹配终止 }
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)方法。匹配终止 }
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()); }
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()); }