Короче говоря, вам нужно каким-то образом сохранить связь между переписанными значениями параметров строки запроса и перезаписанными значениями параметров URL.
Например, если вы переписываете:
http://localhost:1820/Items/Details.aspx?item=3
Кому:
http://localhost:1820/Items/Widgets
Вы должны где-то хранить этот элемент 3, и виджеты являются синонимами. Скорее всего, вы уже делаете это. Я думаю, в вашей базе данных у вас есть таблица Products
(или что-то еще) с ProductID
и ProductName
столбцами, и есть запись с ProductID=3
и ProductName=Widgets
.
Я бы предложил использовать маршрутизацию ASP.NET для обработки перезаписи URL. Короче говоря, вы должны определить правило маршрутизации, например Items/{ProductName}
, и сопоставить его со страницей ASP.NET ~/Items/Details.aspx
. Такое правило маршрутизации гласит: «Всякий раз, когда URL входит в форму Items / независимо от , запустите страницу ~/Items/Details.aspx
». На странице ~/Items/Details.aspx
вы можете программно определить значение ProductName в URL-адресе (то есть вы можете определить, что пользователь посещает элементы / виджеты, в этом примере) и из которого вы можете загрузить / отобразить соответствующая информация.
Ознакомьтесь с этой моей статьей - Маршрутизация URL-адресов в ASP.NET 4 . В нем показано, как использовать перезапись URL во многом так, как вы запрашиваете, с помощью ASP.NET Routing (встроенная библиотека в ASP.NET 3.5 SP1 и выше). Вы также можете загрузить рабочий образец приложения, демонстрирующий методы, описанные в статье.
Счастливого программирования!