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;
        }
Пример #2
0
        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);
            }
        }