ASP.NET 4 вопрос маршрутизации - PullRequest
1 голос
/ 27 января 2011

Я пытаюсь сделать следующее в моем файле Global.asax:

В данный момент я должен определить свой маршрут следующим образом:

routes.MapPageRoute(
    "ViewPage", 
    "pages/{slug}",
    "~/viewpage.aspx",
    false
);

Обратите внимание на страницы со словами перед{slug}

Теперь, если я определю это так:

routes.MapPageRoute (
    "ViewPage", 
    "{slug}",
    "~/viewpage.aspx",
    false
);

Это не работает.

Мои файлы CSS и JS не загружаются, я получаю 404.

Но, если я сделаю это:

routes.MapPageRoute (
    "ContactPage", 
    "contact",
    "~/contact.aspx",
    false
);

Это прекрасно работает ??

В основном я хочу, чтобы мои URL выглядели так:

example.com/contact или example.com/about-us и все это динамически подается из базы данных на основе {slug}.

Может кто-нибудь помочь?

Ответы [ 3 ]

3 голосов
/ 27 января 2011

Использование:

RouteTable.Routes.MapPageRoute("slug", 
                "{slug}",
                "~/page.aspx", false);

У меня отлично работает. Вам нужно убедиться, что ваши маршруты в правильном порядке; специфичны для общего, но также имеют игнорируемый для ресурсов и т. д. в противном случае они также будут направлены туда.

Надеюсь, что помогает

Редактировать

Игнорировать маршруты типа:

RouteTable.Routes.Ignore("{resource}.axd/{*pathInfo}");
1 голос
/ 27 января 2011

Спасибо, ребята !!

Я должен был переупорядочить свои маршруты.

Я использую HttpHandler для объединения и распаковки моих файлов js и css. Это добавлялось в последний раз так:

const string combine = "~/code/httphandlers/httpcombiner.ashx";
RegisterRoutes(RouteTable.Routes);
RouteTable.Routes.Add(new Route("combine", new HttpHandlerRoute(combine)));

Я переключил их на:

const string combine = "~/code/httphandlers/httpcombiner.ashx";
RouteTable.Routes.Add(new Route("combine", new HttpHandlerRoute(combine)));
RegisterRoutes(RouteTable.Routes);

Я добавил StopRoutingHandler для webresource.axd, и теперь все работает прекрасно!

1 голос
/ 27 января 2011

Как игнорировать маршрут в формах asp.net url маршрутизация

Возможно, что-то вроде этого, хотя я не могу проверить это в данный момент.Из того, что я понимаю, он должен сказать обработчику маршрутизации игнорировать что-либо в этих каталогах.

routes.Add(new Route("images/", new StopRoutingHandler()));
routes.Add(new Route("js/", new StopRoutingHandler()));
routes.Add(new Route("css/", new StopRoutingHandler()));
...