генерация URL-адреса с помощью asp.net механизм маршрутизации в приложении mvc3

#asp.net #asp.net-mvc #asp.net-mvc-3 #url-routing #asp.net-mvc-routing

#asp.net #asp.net-mvc #asp.net-mvc-3 #url-маршрутизация #asp.net-mvc-маршрутизация

Вопрос:

Шаблон URL-адреса по умолчанию {controller}/{action}/{id} , но я хочу, чтобы он был того типа {db-field-which-is-retrieved-using-id}/{controller}/{action}/{id} , который мне нужен, где я могу получить db-поле

Ответ №1:

Вы можете использовать любой шаблон, который вам нравится.

 _routes.MapRoute("myRoute","view/{db-field}/{controller}/{action}/{id}",
            new { controller = "home", action = "index"}
            );
 

Важно иметь сегмент пути (‘view’ в этом примере) и объявлять маршрут перед другими, чтобы он мог использовать этот маршрут, а не маршрут по умолчанию. Я предполагаю, что db-field — это что-то вроде названия статьи, и оно вам нужно для целей SEO.

Комментарии:

1. Я хочу сгенерировать URL-адрес, используя базу данных, так где именно я могу получить данные из этого идентификатора? у моих ссылок нет этого хоста, я хочу сгенерировать его, когда кто-то увидит эту страницу.

2. Я не понимаю. Можете ли вы опубликовать пример?

3. хорошо, посмотрите, есть ли у меня {teacher-name}/ {controller}/ {action}/{student-id} теперь я хочу автоматически извлекать имя учителя из базы данных каждый раз, когда я получаю идентификатор студента. Я не хочу добавлять этот дополнительный параметр имени учителя в ссылку действия url на стороне просмотра. каждый раз, когда механизм маршрутизации обнаруживает параметр student-id, он должен запускать функцию, которая возвращает ему имя преподавателя. Спасибо, Майк

4. Если я правильно понимаю, ваша проблема не имеет ничего общего с маршрутизацией. Вы получаете имя преподавателя из базы данных в контроллере, используя параметр student-id, передаете его в представление через viewmodel и все. Имя преподавателя в URL должно быть только для SEO или для того, чтобы учитель был доволен. Механизм маршрутизации просто идентифицирует контроллер, действие и различные параметры действия. В этом случае параметром должен быть идентификатор студента