public static ActionResult ResolveArticleInfo(WikiArticleInfoViewModel model, RequestContext requestContext) { var baseResult = ResolveArticleBase(model, requestContext); if (baseResult != null) { return baseResult; } var urlHelper = new UrlHelper(requestContext); if (model.HasRedirect) { string articleRedirectUrl = urlHelper.WikiArticle( model.ArticleSlug, model.ArticleRevisionDate, model.ShouldRedirect); return !string.IsNullOrWhiteSpace(articleRedirectUrl) ? new RedirectResult(articleRedirectUrl) : null; } if (!model.HasArticle) { string articleRedirectUrl = urlHelper.WikiArticle( model.ArticleSlug, model.ArticleRevisionDate, model.ShouldRedirect); return !string.IsNullOrWhiteSpace(articleRedirectUrl) ? new RedirectResult(articleRedirectUrl) : null; } return null; }
public ActionResult Info(string slug) { try { var model = new WikiArticleInfoViewModel(this.ControllerContext, slug); return model.AlternativeActionResult ?? this.View(model); } catch (ArticleNotFoundException) { string redirectUrl = this.Url.WikiArticle(slug); return this.Redirect(redirectUrl); } }