В настоящее время у меня есть сайт ASP .NET MVC, на который указывают два домена (например, www.domainA.com и www.domainB.com).Я хотел бы изменить все свои ссылки для использования www.domainA.com, даже если www.domainB.com посещен.
Все мои URL-адреса генерируются встроенными Url.Action и Html.ActionLink.методы.
Я следовал инструкциям в предыдущем вопросе , но не могу заставить его работать.
Вот мой собственный маршрут :
public class MultipleDomainRoute : System.Web.Routing.Route
{
public MultipleDomainRoute(string url, IRouteHandler routeHandler)
: base(url, routeHandler)
{
}
public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
VirtualPathData path = new VirtualPathData(this, "http://www.domainA.com/" + values["controller"] + "/" + values["action"]);
return path;
}
}
Вот мой пользовательский обработчик маршрута:
class MyRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
return new MvcHandler(requestContext);
}
}
Вот мой метод RegisterRoutes:
public static void RegisterRoutes(RouteCollection routes)
{
routes.Add(new MultipleDomainRoute("{controller}/{action}/{id}", new MyRouteHandler()));
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
Маршрут работает (то есть не разрушает мой сайт), но когда я его запускаю, мои URL просто добавляются к http://localhost... Например, я получаю "http://localhost:56822/http:/www.domainA.com/Home/Index".
У кого-нибудь естьИдея, почему это не работает?