Обычно это делается в ASP.NET MVC и называется ASP.NET Routing .Это применимо и в ASP.NET WebForms.
Вы также можете использовать модуль IIS с именем IIS Rewrite , это похоже на Apache mod_rewrite, если вы знаете, как это работает.
Здесь - это руководство по работе.
Из MSDN относительно маршрутизации ASP.NET:
В приложении веб-форм высоздавать маршруты с помощью метода MapPageRoute (String, String, String) класса RouteCollection.Метод MapPageRoute создает объект Route и добавляет его в объект RouteCollection.Свойства для объекта Route указываются в параметрах, передаваемых методу MapPageRoute.
Обычно маршруты добавляются в метод, который вызывается из обработчика для события Application_Start в файле Global.asax.Этот подход гарантирует, что маршруты доступны при запуске приложения.Это также позволяет вам вызывать метод непосредственно при модульном тестировании приложения.Если вы хотите вызывать метод непосредственно при модульном тестировании приложения, метод, который регистрирует маршруты, должен быть статическим (Shared в Visual Basic) и иметь параметр RouteCollection.
В следующем примере показан код изфайл Global.asax, который добавляет объект Route, который определяет два параметра URL, называемые action и categoryName.URL-адреса с указанным шаблоном направляются на физическую страницу с именем Categories.aspx.
Это ваш Global.asax:
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("",
"Category/{action}/{categoryName}",
"~/categoriespage.aspx");
}