Столкнувшись с проблемой CustomRouteHandler с перманентным перенаправлением 301 в проекте веб-формы asp.net - PullRequest
2 голосов
/ 12 сентября 2011

Мне удается разработать собственный обработчик маршрута для маршрутизации asp.net.Я разрабатываю, чтобы справиться с перенаправлением 301.вот мой полный код

public class CustomRouteHandler : IRouteHandler
{
    public CustomRouteHandler(string virtualPath)
    {
        VirtualPath = virtualPath;
    }

    public string VirtualPath { get; private set; }

    public IHttpHandler GetHttpHandler(RequestContext requestContext)
    {

        if (requestContext.HttpContext.Request.Url.LocalPath.Contains("?"))
        { }

        requestContext.HttpContext.Response.Status = "301 Moved Permanently";
        requestContext.HttpContext.Response.StatusCode = 301;
        requestContext.HttpContext.Response.AppendHeader("Location", requestContext.HttpContext.Request.Url.LocalPath);


        var page = BuildManager.CreateInstanceFromVirtualPath
                       (VirtualPath, typeof(System.Web.UI.Page)) as IHttpHandler;

        return page;
    }

}

void Application_Start(object sender, EventArgs e)
    {

        RouteTable.Routes.Add("Source", new Route
        (
           "UrlRewrite/Approach1/Source/{ID}/{Title}",
           new CustomRouteHandler("~/UrlRewrite/Approach1/Source.aspx")
        ));

    }

на самом деле приведенные ниже строки дают мне проблему requestContext.HttpContext.Response.Status = "301 Moved Permanently";requestContext.HttpContext.Response.StatusCode = 301;requestContext.HttpContext.Response.AppendHeader ("Location", requestContext.HttpContext.Request.Url.LocalPath);

для вышеуказанной строки одна и та же страница запрашивается снова и снова, как бесконечный цикл.так что, пожалуйста, подскажите мне, что делать ..... спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...