我在MCTS考試中收到以下問題。這本書說答案是C
,但我認爲B
將是正確的答案。爲什麼它是C
?如何編寫允許在ASP.NET MVC中使用下劃線的路線?
您創建了一個新的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}" });
此外,我會說「B」是不正確的,因爲這條線的問題:「用戶名稱被輸入爲路徑時必須顯示用戶的詳細信息」。對我而言,這意味着需要支持瀏覽http://blah.com/JCapriotti。但是,「B」只支持http://blah.com/Home/DetailsByUserName/JCapriotti。 – 2011-01-21 21:11:23