Как проложить страницу .aspx в проекте asp.net mvc 3?

У меня есть страница .aspx по следующему пути:

Areas/Management/Views/Ticket/Report.aspx 

Я хочу направить это на следующий путь в моем браузере:

 http://localhost/Reports/Tickets 

Как я могу это сделать?

Я пробую это:

 routes.MapRoute( "Tickets", // Route name "Areas/Management/Views/Ticket/Report.aspx", // Original URL new { controller = "Reports", action = "Tickets" } // New URL ); 

Но я получил ошибку 404 .

Что я делаю неправильно?

Obs: Я положил это до маршрута по Default .

Если вы пытаетесь использовать веб-формы в проекте MVC, я бы переместил ваш .aspx из папки представлений, так как это не совсем представление, что-то вроде WebForms / Tickets / Report.aspx.

В веб-формах вы сопоставляете маршрут, вызывая метод MapPageRoute .

 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapPageRoute("Tickets", "Reports/Tickets", "~/WebForms/Tickets/Report.aspx"); routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional }); 

Вы должны поместить это до маршрута MVC по умолчанию.

Решено! Таким образом, нам нужно добавить ограничение маршрута к маршруту веб-форм, чтобы убедиться, что он ловит только входящие маршруты, а не исходящие маршруты.

Добавьте в свой проект следующий class (либо в новом файле, либо в нижней части global.asax.cs):

 public class MyCustomConstaint : IRouteConstraint{ public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection){ return routeDirection == RouteDirection.IncomingRequest; } } 

Затем измените маршрут билетов следующим образом:

 routes.MapPageRoute( "Tickets", "Reports/Tickets", "~/WebForms/Reports/Tickets.aspx", true, null, new RouteValueDictionary { { "outgoing", new MyCustomConstaint() } } ); 

вы делаете это наоборот. это сопоставляет ваши Areas/Management/Views/Ticket/Report.aspx к { controller = "Reports", action = "Tickets" }
вместо этого вам следует установить url как
Reports/Tickets EDIT: – вы можете создать routeHandler только для маршрутизации на эту страницу .aspx .. вот так.

 public class ASPXRouteHandler : IRouteHandler { public IHttpHandler GetHttpHandler(RequestContext requestContext) { return BuildManager.CreateInstanceFromVirtualPath("~/Areas/Management/Views/Ticket/Report.aspx", typeof(Page)) as Page; } } 

то u может добавить ur-маршрут в существующую таблицу маршрутов, используя

 Route customRoute = new Route("Reports/Ticket",null, new ASPXRouteHandler()); routes.Add(customRoute); 

если вы оставите стандартную маршрутизацию при создании проекта asp.net

 public class ReportsController : Controller { public ActionResult Ticket() { return View(); } } 

это должно сделать трюк. Маршрутизация в asp.net mvc означает, что вы не ссылаетесь непосредственно на .aspx, а на Actions (methods), которые, в свою очередь, возвращают соответствующее представление ( .aspx)

  • Что означает среднее значение 0.0.0.0 в таблице маршрутизации?
  • Перенаправление URL-адреса IIS и маршрутизация URL-адресов
  • Избегайте корпоративных заблокированных URL-адресов, когда в Cisco VPN
  • Маршрутизация всего трафика через туннель OpenVPN
  • Как перенаправить изображения с использованием маршрутизации ASP.Net MVC?
  • Как принудительно разбить туннель на Mac на Cisco VPN
  • Исходная политическая маршрутизация и NAT (DNAT / SNAT) aka Multi WANs на CentOS 5
  • HttpContext.Current.Session имеет значение null при запросах маршрутизации
  • Обмануть cisco vpn с помощью маршрутов
  • Двойной маршрутизатор OpenVpn Port Forwarding
  • Настройка маршрутизации и iptables для нового VPN-подключения для перенаправления ** только ** портов 80 и 443
  • Interesting Posts

    Наружная топология сетки WiFi против ретрансляторов

    Форматирование форматирования jFormattedTextFieldCommitsOnValidEdit (true) не работает при первом фокусе

    Ошибка Weird MSC 8.0: «Значение ESP не было должным образом сохранено в вызове функции …»

    Как я могу печатать на одной строке?

    Как найти разницу между двумя изображениями?

    Не удается установить Windows 7 SDK

    FTP-клиент, поддерживающий 2 одновременных сеанса FTP

    Как возобновить Android-активность программно из фона

    Как установить размер кучи для sbt?

    Microsoft Word внезапно не сохранит файлы; «Слово не может создать рабочий файл – проверьте переменную среды temp»

    Как скрыть закладки с новой вкладки в Chrome?

    Обнаружение закрытия браузера или вкладки

    Как создать много-много отношений с новейшими ночными assemblyми EF Core?

    Скопировать имя файла в буфер обмена

    Как найти UpgradeCode и ProductCode установленного приложения в Windows 7

    Давайте будем гением компьютера.