Есть ли простой способ использования Asp.net Routing для удаления расширения .aspx с использованием Asp.net Routing

1

Я использую Asp.Net 4.0 и для создания SEO Friendly Urls Я использую Asp.Net Routing методы, такие как;

public static void RegisterRoutes(RouteCollection routes)
{
    routes.Add("BikeSaleRoute", new Route
    (
       "bikes/sale",
       new CustomRouteHandler("~/Contoso/Products/Details.aspx")
    ));
}

Обработка его в методе Application_Start

 void Application_Start(object sender, EventArgs e) 
 {
    RegisterRoutes(RouteTable.Routes);

 }

То, что я пытаюсь написать, - это метод с использованием Asp.net Routing, который может удалять расширения.aspx со всех моих страниц независимо от их уровня каталогов (даже стартовой страницы Default.aspx). Любая помощь в этом отношении, пожалуйста?

  • 0
    c-sharpcorner.com/Blogs/14762/...
  • 0
    Камлеш Арья, мне нужно это с помощью технологии маршрутизации Asp.net, а не IIS для конфигурации
Теги:
url-routing
url-rewriting

2 ответа

1
Лучший ответ

Вы можете использовать повторную запись URL в IIS или в Web.Config и можете сделать, выполнив следующий фрагмент кода, поместите следующий код в "Global.asax".

public static void RegisterRoutes(RouteCollection routeCollection) { routeCollection.MapPageRoute("RouteForDefault", "Default", "~/Default.aspx"); }

Удачи

  • 0
    Спасибо, но это не работает здесь. Я вижу нормальные URL
  • 0
    Используйте www.example.com/Default вместо использования этого URL: www.example.com/Default.aspx, это будет работать.
Показать ещё 4 комментария
0

Если вы хотите общее решение для всех страниц вашего проекта, вы можете использовать этот пакет здесь: http://www.hanselman.com/blog/IntroducingASPNETFriendlyUrlsCleanerURLsEasierRoutingAndMobileViewsForASPNETWebForms.aspx

В противном случае вы можете использовать это в Global.asax для каждой страницы вашего приложения:

public class Global : System.Web.HttpApplication
{
        void RegisterRoutes(RouteCollection routes)
        {
            routes.MapPageRoute("InteriorServices", "InteriorServices", "~/InteriorServices.aspx");
        }
        protected void Application_Start(object sender, EventArgs e)
        {
            RegisterRoutes(RouteTable.Routes);
        }
 }
  • 0
    Благодарю. проверка ваших ссылок ..
  • 0
    Для приведенного выше кода это работает только для конкретной страницы. нужно что-то, что может работать для каждой страницы в решении. Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню