Как обрабатывать пустой URL в ASP.NET MVC - PullRequest
1 голос
/ 11 июля 2009

Как настроить маршрутизацию для обработки http://mysite.com/Foo?

Где foo может иметь любое значение. Я хочу, чтобы он пошел в / Home / Action / Id, где foo это идентификатор.

Вот сопоставления, которые я пробовал:

        routes.MapRoute("Catchall", "{*catchall}", 
           new { controller = "Home", action = "Index", id=""});

        routes.MapRoute("ByKey", "{id}", 
            new { controller = "Home", action = "Index" id=""});

Они оба сгенерировали 404.

Спасибо за любую помощь.

Ответы [ 2 ]

3 голосов
/ 12 июля 2009

Попробуйте (обратите внимание, что в исходном сообщении пропущена запятая):

routes.MapRoute("ByKey", "{id}",
     new { controller = "Home", action = "Index", id=""});

Я бы, однако, сделал бы это немного более объяснительным, чтобы предотвратить столкновения позже, даже если это означает немного более длинные URI:

routes.MapRoute("ByKey", "ByKey/{id}",
     new { controller = "Home", action = "Index", id=""});

И поместите это как первую команду MapRoute. Порядок имеет значение там, и первый маршрут, который вы добавляете, является первым маршрутом для URL, который будет проверен.

1 голос
/ 11 июля 2009

Ваш второй маршрут правильный. Он должен работать. Может быть, у вас есть другие маршруты выше? Отладка ваших маршрутов с помощью Отладчика маршрутизации ASP.NET Фила Хаака

...