Как вы делаете 301 перманентный маршрут перенаправления в ASP.Net MVC - PullRequest
8 голосов
/ 07 февраля 2010

Как сделать маршрут перманентного перенаправления HTTP 301 в ASP.NET MVC?

Ответы [ 2 ]

8 голосов
/ 07 февраля 2010

Создать класс, который наследуется от ActionResult ...


    public class PermanentRedirectResult : ActionResult
    {    
        public string Url { get; set; }

        public PermanentRedirectResult(string url)
        {
            this.Url = url;
        }

        public override void ExecuteResult(ControllerContext context)
        {
            context.HttpContext.Response.StatusCode = (int)HttpStatusCode.MovedPermanently;
            context.HttpContext.Response.RedirectLocation = this.Url;
            context.HttpContext.Response.End();
        }
    }

Тогда, чтобы использовать это ...


        public ActionResult Action1()
        {          
            return new PermanentRedirectResult("http://stackoverflow.com");
        }



Более полный ответ, который перенаправит на маршруты ... Правильный код контроллера для 301 Redirect

2 голосов
/ 07 февраля 2010

Требуется перенаправление 301, , временный 302, постоянный 301 . В этом примере context - это HttpContext:

context.Response.Status = "301 Moved Permanently";
context.Response.StatusCode = 301;
context.Response.AppendHeader("Location", nawPathPathGoesHere);
...