【发布时间】:2011-01-21 20:38:27
【问题描述】:
我在 MCTS 考试中收到以下问题。书上说答案是C,但我认为B 是正确答案。为什么是C?
您创建了一个新的 ASP.NET MVC 2 Web 应用程序。以下默认路由创建于
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}" } );
【问题讨论】:
标签: asp.net-mvc routing asp.net-mvc-routing