Что-то в этом роде должно сработать.Отобразите следующий маршрут:
routes.MapRoute("Redirect route", "{file}.aspx",
new { controller = "home", action = "redirect" });
И определите действие Redirect
в вашем контроллере:
public ActionResult Redirect()
{
// use Request.RawUrl, for instance to parse out what was invoked
// this regex will extract anything between a "/" and a ".aspx"
var regex = new Regex(@"(?<=/).+(?=\.aspx)", RegexOptions.Compiled);
var action = regex.Match(Request.RawUrl);
return RedirectToActionPermanent(action.Value);
}
Вы можете перенаправить обе страницы aspx
на один и тот же маршрут перенаправления и определить, какиеНа самом деле файл был вызван синтаксическим анализом HttpContext.Request.RawUrl
(хотя, возможно, есть лучший способ для этой последней точки).
ОБНОВЛЕНИЕ
Существует действительно более простой способ,как выяснил сам @alex.Чтобы получить файл в исходном запросе, просто выполните:
string file = RouteData.Values["file"].ToString();