最近,工作上有一個(gè)需要:用戶查詢?nèi)罩疚募畔ⅲ榭茨骋粋€(gè)具體日志信息,可能同時(shí)查看該日志所在日期的其他日志信息列表。
為完成此功能,我打算在URL中傳入了兩個(gè)參數(shù),一個(gè)記錄此日志時(shí)間,另外一個(gè)記錄日志的主鍵ID,因此,準(zhǔn)備從Asp.net MVC的路由入手。
在Global.asax文件中,默認(rèn)路由如下。
routes.MapRoute( "Default", // 路由名稱 "{controller}/{action}/{id}", // 帶有參數(shù)的 URL new { controller = "Logon", action = "Logon", id = UrlParameter.Optional } // 參數(shù)默認(rèn)值 );
這個(gè)路由中,在Action后面只能傳入一個(gè)參數(shù),不能傳入多個(gè)參數(shù),因此,需要增加路由信息。
在Global文件中,新增了一個(gè)路由,路由名稱為“Default1",代碼如下
//第一種路由 傳兩個(gè)參數(shù)過(guò)去 routes.MapRoute("Default1", "{controller}/{action}/{Parma1}/{Parma2}", new { controller = "", action = "" }, new { });
上述路由,可以傳入兩個(gè)參數(shù)。
在此,我們建一個(gè)TestController,添加一個(gè)Test.cshtml頁(yè)面,在TestController寫(xiě)下代碼,如下
public ActionResult Test(string date, string id) { ViewData["date"] = date; ViewData["id"] = id; return View(); }
在Test.cshtml頁(yè)面中寫(xiě)如下代碼
要查詢的日志時(shí)間為:@ViewData["date"]<br /> 要查詢的日志ID為:@ViewData["id"]<br />
運(yùn)行編譯器,然后在瀏覽器中輸入 ”http://localhost:11507/Test/Test/2013-12-18/5“,頁(yè)面顯示如下
要查詢的日志時(shí)間為:2013-12-18
要查詢的日志ID為:5
現(xiàn)在又有一個(gè)問(wèn)題來(lái)了,需要傳入多個(gè)參數(shù),怎么辦呢?當(dāng)然,只有新添加新的路由”Default2"。代碼如下
//第二種路由 傳多個(gè)參數(shù),只是獲得的第二個(gè)下劃線后的所以數(shù)據(jù) routes.MapRoute("Default2", "{controller}/{action}/{*id}", new { controller = "", action = "" } );
運(yùn)行編譯器,然后在瀏覽器中輸入 ”http://localhost:11507/Test/Test/2013-12-18/5/xianrongbin“,頁(yè)面顯示如下
要查詢的日志時(shí)間為:
要查詢的日志ID為:2013-12-18/5/xianrongbin
這里我們只能得到Action后面所有的參數(shù),對(duì)此,我們可以解析出來(lái),比如日志時(shí)間是 “2013-12-18",日志ID為”5“,日志操作者是”xianrongbin"。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com