ASP.NET MVC从控制器中获取URL值

作者:.NET开发菜鸟 时间:2023-07-09 18:30:08 

从控制器中获取URL的值有三种方式:

1、使用Request.QueryString[]

例如:

string value = Request.QueryString["BookId"].ToString();

注意:Request.QueryString只能获取URL中以?分割的参数值。

案例演示:

action方法代码如下:

#region 1、通过Request.QueryString的方式获取URL的值
public ActionResult Index()
{
      // 获取路由数据
      if (Request.QueryString["BookId"] != null)
     {
           string value = Request.QueryString["BookId"].ToString();
           ViewData["msg"] = value;
      }
      return View();
}
#endregion

在前端页面添加一个P标签,用来输出BookId的值:

<p style="color:red;font-weight:bold">1、通过Request.QueryString获取URL的值:@ViewData["msg"]</p>

运行结果

URL里面没有BookId参数时的结果:

ASP.NET MVC从控制器中获取URL值

URL里面有Bookid参数时的结果:

ASP.NET MVC从控制器中获取URL值

注意:URL里面的参数不区分大小写。

http://localhost:47723/Home/Index?BookId=4546

http://localhost:47723/Home/Index?BookID=4546

http://localhost:47723/Home/Index?bookid=4546

上面的几种URL都可以获取到BooId参数的值(这里只是列举了几种,其他形式的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"]就是当前字典上的路由数据,通过访问键名的方式得到键值,比如URL模式匹配的字符串是ID,则key的值必须是id。

案例演示

action方法代码如下:

public ActionResult Index()
{
     // 获取路由数据
     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();
}

在前端页面添加一个P标签,用来输出URL参数的值:

<p style="color:blue;font-weight:bold">2、通过RouteData获取URL的值:@ViewData["msg"]</p>

运行结果:

ASP.NET MVC从控制器中获取URL值

3、使用action参数

public ActionResult Index(string controller, string action, int id)
{ }

注意:Action方法的参数和路由字典的参数是对应的,MVC框架在执行action方法前会首先为这些参数赋值。

案例演示

action方法代码如下:

public ActionResult Index(string controller, string action, int id)
{
     // 获取路由数据
     string paraDatas = string.Format("controller={0} action={1} id={2}", controller, action, id);
     ViewData["msg"] = paraDatas;
     return View();
}

注意:这时候需要修改路由注册,给id一个默认值,或者和第一种方式里面一样先判断id的值是否为null。否则会报下面的错误:

ASP.NET MVC从控制器中获取URL值

在这里给id一个默认值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默认值2
           );
       }
   }
}

运行结果

ASP.NET MVC从控制器中获取URL值

示例代码下载地址:点此下载

来源:https://www.cnblogs.com/dotnet261010/p/8849895.html

标签:ASP.NET,MVC,控制器,获取,URL,值
0
投稿

猜你喜欢

  • 我们需要的是怎样的分页?

    2007-09-28 20:24:00
  • 回答XML与HTML的区别

    2007-12-03 10:58:00
  • 解决python中set与dict的无序问题

    2021-02-24 14:50:31
  • IE中radio 或checkbox的checked属性初始状态下不能选中显示问题

    2024-05-10 14:06:42
  • 解决IE下提示“无法打开Internet站点 已终止操作”的错误

    2009-03-04 12:04:00
  • ASP中查询数据库记录写入XML文件示例

    2007-08-23 13:12:00
  • numpy系列之数组合并(横向和纵向)

    2023-11-13 07:13:21
  • 分享9个好用的Python技巧

    2021-03-15 18:43:05
  • Python一行代码解决矩阵旋转的问题

    2022-03-08 12:44:11
  • 在oracle 数据库查询的select 查询字段中关联其他表的方法

    2009-08-31 12:27:00
  • Python正则表达式教程之三:贪婪/非贪婪特性

    2023-08-14 20:20:12
  • 得到字符串真实长度和取固定长度的字符串函数

    2008-10-06 13:12:00
  • js实现的星星评分功能函数

    2024-06-16 10:28:07
  • 基于Python编写一个有趣的进程勾选器(Process Selector)

    2023-06-19 06:28:19
  • Oracle VM VirtualBox 虚拟机硬盘扩容

    2024-01-14 13:58:59
  • python实现Adapter模式实例代码

    2021-10-20 00:43:02
  • Python中在for循环中嵌套使用if和else语句的技巧

    2022-10-08 17:44:50
  • PyTorch中permute的基本用法示例

    2022-04-22 01:14:01
  • 解决python虚拟环境切换无效的问题

    2023-02-01 14:37:50
  • 网址站的2.0玩法

    2010-03-15 12:25:00
  • asp之家 网络编程 m.aspxhome.com