Я бы реализовал эту функциональность следующим образом:
1.При создании новой статьи создайте представление URL на основе заголовка.
Используйте функцию, которая преобразует заголовок для подходящего представления.Например, заголовок «Это пример» может генерировать что-то вроде «This_is_an_example».
Это ваше дело.Вы можете создать функцию, которая анализирует заголовок с определенными вами правилами, или использовать существующую, если она лучше подходит для вашей задачи.
2.Убедитесь, что URL-представление уникально
Если это будет идентификатор, он должен быть уникальным.Таким образом, при создании новых статей вы должны запросить в вашей базе данных итоговое представление URL.Если вы получаете результат из базы данных, это означает, что вновь созданная статья сгенерировала то же представление, что и одна из уже созданных статей.Добавьте что-нибудь к нему, чтобы оно оставалось уникальным.
Это может быть что-то вроде «This_is_an_example_2».В этом случае мы добавили «_2» в конец сгенерированного представления, чтобы оно отличалось от уже существующего.Еще раз, при каждом изменении вы должны убедиться, что это представление остается уникальным.
3.Сохраните созданный идентификатор в базе данных вместе с данными товара
В базе данных обязательно сохраните идентификатор «This_is_an_example» и свяжите его со статьей.Может быть даже в качестве таблицы первичного ключа?
4.Запросите базу данных для правильной статьи
Теперь о показе посетителю сайта правильной статьи: Когда посетитель запрашивает следующий ресурс, например:
http://www.mydomain.com/mycontroller/myaction/this_is_an_example_2
ИзвлечьЧасть URL, которая идентифицирует статью, в данном случае «this_is_an_example_2».
Когда у вас есть это, у вас есть идентификатор статьи в базе данных.Таким образом, вы можете запросить базу данных для статьи с идентификатором «this_is_an_example_2» и показать содержимое статьи пользователю.
Это может потребовать некоторой перезаписи URL.К сожалению, я не могу помочь вам с этим в asp.NET.Некоторые поиски по теме наверняка вам помогут.