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));
        }
Example #3
0
        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();
        }