Мне удается разработать собственный обработчик маршрута для маршрутизации 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);
для вышеуказанной строки одна и та же страница запрашивается снова и снова, как бесконечный цикл.так что, пожалуйста, подскажите мне, что делать ..... спасибо