asp.net mvc url маршрутизация - имя подпапки - PullRequest
1 голос
/ 16 апреля 2009

Я хотел бы создать URL, как показано ниже:

объявление, здоровье, политика контролера

поэтому я создаю новую карту маршрутов URL, например:

routes.MapRoute(
 "News",
 "news/{controller}/{action}/{id}",
 new { controller = "Announcement", action = "Index", id = "" }
);

Работает нормально, но следующие два URL показывают ту же страницу:

Я бы хотел запретить второй URL.

Что мне делать?

Спасибо Kwon

Ответы [ 3 ]

10 голосов
/ 16 апреля 2009

Если у вас все еще настроен маршрут по умолчанию, вам нужно удалить его или добавить ограничение маршрута, чтобы оно не совпадало с вашим новостным путем.

Удалить это:

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

Или добавьте ограничение:

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

Ограничение позволит маршруту по умолчанию соответствовать только контроллерам Home и Other, но не Announcment, Health или Policy (или чему-либо еще в этом отношении).

1 голос
/ 16 апреля 2009

Если есть какое-либо сопоставление маршрута по умолчанию, переместите его в конец ваших сопоставлений. Если это не поможет, вы можете попробовать Url Routing Debugger .

0 голосов
/ 16 апреля 2009

Логически говоря, второй URL не должен работать. Потому что news - это имя вашего приложения, которое размещено в IIS, и я полагаю, вы могли бы поместить его на веб-сайте по умолчанию. Так что если вы обращаетесь к приложению, URL всегда будет

http://localhost/news/controller/action

и если вы дадите это

http://localhost/controller/action, он не знает, какое приложение искать.

Я предлагаю вам создать виртуальный каталог «новости», если вы его еще не создали, а затем публиковать там все. Также убедитесь, что вы не опубликовали файлы приложения в каталоге Inetpub \ wwwroot \.

Жду вашего ответа, чтобы продолжить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...