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参数时的结果:
URL里面有Bookid参数时的结果:
注意: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>
运行结果:
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。否则会报下面的错误:
在这里给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
);
}
}
}
运行结果
示例代码下载地址:点此下载
来源:https://www.cnblogs.com/dotnet261010/p/8849895.html
标签:ASP.NET,MVC,控制器,获取,URL,值
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
我们需要的是怎样的分页?
2007-09-28 20:24:00
![](https://img.aspxhome.com/file/UploadPic/20079/28/2007928202636587s.gif)
回答XML与HTML的区别
2007-12-03 10:58:00
解决python中set与dict的无序问题
2021-02-24 14:50:31
![](https://img.aspxhome.com/file/2023/7/105287_0s.jpg)
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
![](https://img.aspxhome.com/file/2023/6/133476_0s.png)
Oracle VM VirtualBox 虚拟机硬盘扩容
2024-01-14 13:58:59
![](https://img.aspxhome.com/file/2023/2/65252_0s.jpg)
python实现Adapter模式实例代码
2021-10-20 00:43:02
![](https://img.aspxhome.com/file/2023/0/127840_0s.png)
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
![](https://img.aspxhome.com/file/2023/0/77860_0s.jpg)
网址站的2.0玩法
2010-03-15 12:25:00