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