最近,工作上有一個需要:用戶查詢?nèi)罩疚募畔ⅲ榭茨骋粋€具體日志信息,可能同時查看該日志所在日期的其他日志信息列表。
為完成此功能,我打算在URL中傳入了兩個參數(shù),一個記錄此日志時間,另外一個記錄日志的主鍵ID,因此,準備從Asp.net MVC的路由入手。
在Global.asax文件中,默認路由如下。
1
2
3
4
5
|
routes.MapRoute( "Default" , // 路由名稱 "{controller}/{action}/{id}" , // 帶有參數(shù)的 URL new { controller = "Logon" , action = "Logon" , id = UrlParameter.Optional } // 參數(shù)默認值 ); |
這個路由中,在Action后面只能傳入一個參數(shù),不能傳入多個參數(shù),因此,需要增加路由信息。
在Global文件中,新增了一個路由,路由名稱為“Default1",代碼如下
1
2
3
4
5
|
//第一種路由 傳兩個參數(shù)過去 routes.MapRoute( "Default1" , "{controller}/{action}/{Parma1}/{Parma2}" , new { controller = "" , action = "" }, new { }); |
上述路由,可以傳入兩個參數(shù)。
在此,我們建一個TestController,添加一個Test.cshtml頁面,在TestController寫下代碼,如下
1
2
3
4
5
6
|
public ActionResult Test( string date, string id) { ViewData[ "date" ] = date; ViewData[ "id" ] = id; return View(); } |
在Test.cshtml頁面中寫如下代碼
1
2
|
要查詢的日志時間為:@ViewData["date"]< br /> 要查詢的日志ID為:@ViewData["id"]< br /> |
運行編譯器,然后在瀏覽器中輸入 ”http://localhost:11507/Test/Test/2013-12-18/5“,頁面顯示如下
要查詢的日志時間為:2013-12-18
要查詢的日志ID為:5
現(xiàn)在又有一個問題來了,需要傳入多個參數(shù),怎么辦呢?當然,只有新添加新的路由”Default2"。代碼如下
1
2
3
4
5
6
|
//第二種路由 傳多個參數(shù),只是獲得的第二個下劃線后的所以數(shù)據(jù) routes.MapRoute( "Default2" , "{controller}/{action}/{*id}" , new { controller = "" , action = "" } ); |
運行編譯器,然后在瀏覽器中輸入 ”http://localhost:11507/Test/Test/2013-12-18/5/xianrongbin“,頁面顯示如下
要查詢的日志時間為:
要查詢的日志ID為:2013-12-18/5/xianrongbin
這里我們只能得到Action后面所有的參數(shù),對此,我們可以解析出來,比如日志時間是 “2013-12-18",日志ID為”5“,日志操作者是”xianrongbin"。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:http://www.cnblogs.com/xianrongbin/p/3470601.html