Я получил следующую проблему на экзамене MCTS.В книге говорится, что ответ C
, но я подумал, что B
будет правильным ответом.Почему это C
?
Вы создаете новое веб-приложение ASP.NET MVC 2.Следующие маршруты по умолчанию создаются в файле Global.asax.cs
.(Номера строк включены только для справки.)
01 public static void RegisterRoutes(RouteCollection routes)
02 {
03 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
04
05 routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = "" } );
06 }
Вы реализуете контроллер с именем HomeController, который включает методы со следующими сигнатурами.
public ActionResult Index()
public ActionResult Details(int id)
public ActionResult DetailsByUsername(string username)
Вам необходимо добавить маршрут для удовлетворения следующих требований:
Сведения о пользователе должны отображаться при вводе имени пользователя в качествепуть, вызывая действие DetailsByUsername.
Имена пользователей могут содержать буквенно-цифровые символы и символы подчеркивания и могут содержать от 3 до 20 символов.Что делать?
A.Замените строку 05 следующим сегментом кода.
routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "DetailsByUsername", id = "" } );
B.Замените строку 05 следующим сегментом кода.
routes.MapRoute( "Default", "{controller}/{action}/{username}", new { controller = "Home", action = "DetailsByUsername", username = "" }, new { username = @"\w{3,20}" } );
C.В строке 04 добавьте следующий сегмент кода.
routes.MapRoute( "Details by Username", "{username}", new { controller = "Home", action = "DetailsByUsername" }, new { username = @"\w{3,20}" } );
D.В строке 04 добавьте следующий сегмент кода.
routes.MapRoute( "Details by Username", "{id}", new { controller = "Home", action = "DetailsByUsername" }, new { id = @"\w{3,20}" } );