asp.net mvc 2, выберите содержимое по строке маршрутизации - PullRequest
1 голос
/ 14 октября 2010

У меня возникли проблемы с тем, что я должен назвать это в поле заголовка ...

Вопрос в том.Я хочу выбрать пост блога, введя его заголовок, например: http://localhost:3254/blog/2010/10/net-programming

Заголовок блога должен быть ".net programming".Итак, я настроил маршрут, чтобы искать год в месяц и, наконец, строку.Но как мне сохранить это в базе данных, чтобы иметь возможность искать его?Должен ли я добавить поле, как идентификатор, который содержит asp-программирование?или я должен разобрать заголовок для каждого поиска?или я должен преобразовать заголовок, а затем преобразовать его обратно перед отображением для пользователя?

Ответы [ 2 ]

2 голосов
/ 14 октября 2010

Стандартный метод заключается в создании отдельного столбца в базе данных (обычно называемого 'slug' или постоянная ссылка), в котором хранится html-понятное имя, которое может использоваться Urls. Затем, если заголовок поста изменится, вы, как правило, сохраните флаг, чтобы любой, кто добавил в закладки ссылку, все еще мог найти пост. Значение us, которое мы обычно используем по умолчанию из заголовка блога, заменяет пробелы на - и удаляет любые не относящиеся к URL символы.

http://en.wikipedia.org/wiki/Slug_%28web_publishing%29

0 голосов
/ 14 октября 2010

Есть два возможных решения, которые я могу придумать

  • Создайте свой собственный обработчик маршрута и в его коде найдите актуальную запись в базе данных
  • Создайте метод действия в контроллере, который принимает строковый параметр, и вызовите этот параметр id (или любой другой параметр по умолчанию в вашем методе MapRoutes).
...