private void SetChildren(FrontMenuJsonModel target, List <FrontMenuJsonModel> all) { if (all.Any(m => m.pid == target.id)) { target.children = all.Where(m => m.pid == target.id).ToList(); foreach (var child in target.children) { SetChildren(child, all); } } }
public async Task <ActionResult> Detail(long id) { if (id < 1) { return(RedirectTo404(Url.Home(), "找不到记录!")); } var model = await ArticleRepository.GetEnableByIdAsync(id); if (model == null) { return(RedirectTo404(Url.Home(), "找不到记录!")); } //var articleClassify = await ArticleClassifyRepository.GetUnDeleteByIdAsync(model.ClassifyId); //if (articleClassify != null) //{ // ViewBag.Title = articleClassify.Name; //} model.ViewCount += 1; await ArticleRepository.SaveChangesAsync(); var viewCode = "SingleDetail"; switch (model.PartialViewCode) { case ArticleDetailType.Single: viewCode = "SingleDetail"; break; case ArticleDetailType.Simple: viewCode = "SimpleDetail"; break; case ArticleDetailType.More: viewCode = "MoreDetail"; break; } FrontMenuJsonModel currPage = ViewBag.CurrPage; if (currPage.id == 0) { var targetUrl = Url.Action("Index", new { classifyId = model.ClassifyId }); SetCurrMenu(targetUrl); } return(View(viewCode, model)); }
protected void SetCurrMenu(string targetUrl) { List <FrontMenuJsonModel> menuList = ViewBag.MenuList; FrontMenuJsonModel currMenu = null; FrontMenuJsonModel currPage = null; currMenu = menuList.FirstOrDefault(m => !string.IsNullOrEmpty(m.url) && m.url.Equals(targetUrl, StringComparison.OrdinalIgnoreCase)); if (currMenu == null) { currMenu = menuList.FirstOrDefault(m => m.children != null && m.children.Any(c => !string.IsNullOrEmpty(c.url) && c.url.Equals(targetUrl, StringComparison.OrdinalIgnoreCase))); if (currMenu != null) { currPage = currMenu.children.FirstOrDefault(c => !string.IsNullOrEmpty(c.url) && c.url.Contains(targetUrl)); } } ViewBag.CurrMenu = currMenu ?? new FrontMenuJsonModel(); ViewBag.CurrPage = currPage ?? new FrontMenuJsonModel(); }