public override RouteData GetRouteData(System.Web.HttpContextBase httpContext) { var virtualPath = httpContext.Request.AppRelativeCurrentExecutionFilePath + httpContext.Request.PathInfo;//获取相对路径 virtualPath = virtualPath.Substring(2).Replace(".html", "").Trim('/'); var article = commonModelService.Find(cm => cm.State == CommonModelState.Normal && cm.SubTitle.Equals(virtualPath, StringComparison.OrdinalIgnoreCase)); //尝试根据分类名称获取相应分类,忽略大小写 if (article == null)//如果分类是null,可能不是我们要处理的URL,返回null,让匹配继续进行 { return(null); } //至此可以肯定是我们要处理的URL了 var data = new RouteData(this, new MvcRouteHandler());//声明一个RouteData,添加相应的路由值 data.Values.Add("controller", "Article"); data.Values.Add("action", "Index"); data.Values.Add("id", article.ModelID); data.DataTokens.Add("namespaces", new string[] { "You.Web.Controllers" }); return(data);//返回这个路由值将调用CategoryController.ShowCategory(category.CategoeyID)方法。匹配终止 }
// GET: Article public ActionResult Index(int id) { CommonModelService commonModelService = new CommonModelService(); var model = commonModelService.Find(id); if (model == null) { return(RedirectToAction("", "")); } if (model.isPage) { return(View("Page", model)); } else { return(View("Article", model)); } }
public ActionResult Index(int?id) { if (id != null) { ViewBag.Title = "编辑文章"; ViewBag.Method = "Edit"; var model = commonModelService.Find((int)id); return(View("Edit", model)); } ViewBag.Title = "添加文章"; ViewBag.Method = "Add"; return(View("Edit")); }