ASP.NET?MVC從控制器中獲取URL值
從控制器中獲取URL的值有三種方式:
1、使用Request.QueryString[]
例如:
string value = Request.QueryString["BookId"].ToString();
注意:Request.QueryString只能獲取URL中以?分割的參數(shù)值。
案例演示:
action方法代碼如下:
#region 1、通過Request.QueryString的方式獲取URL的值 public ActionResult Index() { // 獲取路由數(shù)據(jù) if (Request.QueryString["BookId"] != null) { string value = Request.QueryString["BookId"].ToString(); ViewData["msg"] = value; } return View(); } #endregion
在前端頁面添加一個(gè)P標(biāo)簽,用來輸出BookId的值:
<p style="color:red;font-weight:bold">1、通過Request.QueryString獲取URL的值:@ViewData["msg"]</p>
運(yùn)行結(jié)果
URL里面沒有BookId參數(shù)時(shí)的結(jié)果:
URL里面有Bookid參數(shù)時(shí)的結(jié)果:
注意:URL里面的參數(shù)不區(qū)分大小寫。
http://localhost:47723/Home/Index?BookId=4546
http://localhost:47723/Home/Index?BookID=4546
http://localhost:47723/Home/Index?bookid=4546
上面的幾種URL都可以獲取到BooId參數(shù)的值(這里只是列舉了幾種,其他形式的BookId也可以獲取到)。
2、使用RouteData.Values
例如:
string paraDatas = string.Format("controller={0} action={1} id={2}", RouteData.Values["controller"].ToString(), RouteData.Values["action"].ToString(), RouteData.Values["id"]);
注意:RouteData.Values["id"]就是當(dāng)前字典上的路由數(shù)據(jù),通過訪問鍵名的方式得到鍵值,比如URL模式匹配的字符串是ID,則key的值必須是id。
案例演示
action方法代碼如下:
public ActionResult Index() { // 獲取路由數(shù)據(jù) string paraDatas = string.Format("controller={0} action={1} id={2}", RouteData.Values["controller"].ToString(), RouteData.Values["action"].ToString(), RouteData.Values["id"]); ViewData["msg"] = paraDatas; return View(); }
在前端頁面添加一個(gè)P標(biāo)簽,用來輸出URL參數(shù)的值:
<p style="color:blue;font-weight:bold">2、通過RouteData獲取URL的值:@ViewData["msg"]</p>
運(yùn)行結(jié)果:
3、使用action參數(shù)
public ActionResult Index(string controller, string action, int id) { }
注意:Action方法的參數(shù)和路由字典的參數(shù)是對應(yīng)的,MVC框架在執(zhí)行action方法前會(huì)首先為這些參數(shù)賦值。
案例演示
action方法代碼如下:
public ActionResult Index(string controller, string action, int id) { // 獲取路由數(shù)據(jù) string paraDatas = string.Format("controller={0} action={1} id={2}", controller, action, id); ViewData["msg"] = paraDatas; return View(); }
注意:這時(shí)候需要修改路由注冊,給id一個(gè)默認(rèn)值,或者和第一種方式里面一樣先判斷id的值是否為null。否則會(huì)報(bào)下面的錯(cuò)誤:
在這里給id一個(gè)默認(rèn)值2
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MVCUrlPara { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = 2 } //給id默認(rèn)值2 ); } } }
運(yùn)行結(jié)果
示例代碼下載地址:點(diǎn)此下載
到此這篇關(guān)于ASP.NET MVC從控制器中獲取URL值的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Asp.net TreeView來構(gòu)建用戶選擇輸入的方法 推薦
選擇優(yōu)于輸入,這是一般人的共識(shí),面對繁多的數(shù)據(jù),提供良好的選擇界面,一方面增強(qiáng)用戶的界面體驗(yàn),一方面也提高了數(shù)據(jù)的準(zhǔn)確性,更節(jié)省了用戶的寶貴時(shí)間。2009-12-12基于.net standard 的動(dòng)態(tài)編譯實(shí)現(xiàn)代碼
這篇文章主要介紹了基于.net standard 的動(dòng)態(tài)編譯實(shí)現(xiàn)代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07asp.net AutoCompleteExtender的一個(gè)簡單例子代碼
asp.net AutoCompleteExtender的一個(gè)簡單例子代碼2009-12-12asp.net用Zxing庫實(shí)現(xiàn)條形碼輸出的具體實(shí)現(xiàn)
這篇文章主要介紹了asp.net用Zxing庫實(shí)現(xiàn)條形碼輸出的具體實(shí)現(xiàn),有需要的朋友可以參考一下2013-12-12為密碼文本框要求不可粘帖字符串只可手動(dòng)輸入(附演示動(dòng)畫)
以前開發(fā)程序時(shí),用戶登錄的密碼文本框,是可以粘帖密碼字符串的,為了安全起見用戶要求不要粘帖,只能由手動(dòng)輸入,感興趣的朋友可以了解下2013-01-01.NET/C#如何判斷某個(gè)類是否是泛型類型或泛型接口的子類型詳解
這篇文章主要給大家介紹了關(guān)于.NET/C#如何判斷某個(gè)類是否是泛型類型或泛型接口的子類型的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧2018-09-09