Маршруты MVC со специальными символами

I Я пытаюсь поддерживать некоторые устаревшие URL-адреса и сопоставлять их с действиями контроллера. URL-адреса выглядят следующим образом:

/~Home+Office~Note+Pads.html

Вот мой маршрут:

routes.MapRoute(
    "LegacyCategory",
    "{path}.html",
    new { controller = "LegacyCI", action = "Index", }
);

Вот (начало )моего контроллера для работы с ними:

public class LegacyCIController : Controller {
    public ActionResult Index(string path) {
        if (path == "~Address+Labels") {
            return RedirectToAction("Display", "Category", new { id = "AddressLabels" });
        }       
        return RedirectToAction("Index", "Category"); 
    }
}

Если Я устанавливаю точку останова в LegacyCIController и устанавливаю стартовую страницу на XXX.html, точка останова достигает (и терпит неудачу if), и жизнь прекрасна Но когда я пытаюсь установить начальную страницу на ~Address+Labels.html, нет точка останова срабатывает, и Chrome просто вырывает и показывает мне страницу с надписью «ой, эта страница кажется неработающей».

Я запускаю эту страницу через IIS 7 на своем компьютере, а не через Visual Studio.

этот URL-адрес настолько искажен, что обычный маршрут MVC даже не может его обработать, или я делаю что-то еще неправильно?

7
задан Adam Rackis 20 April 2012 в 21:37
поделиться