欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ASP.NET?MVC從控制器中獲取URL值

 更新時(shí)間:2022年03月08日 11:20:28   作者:.NET開發(fā)菜鳥  
這篇文章介紹了ASP.NET?MVC從控制器中獲取URL值的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

從控制器中獲取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)文章

最新評論