ASP.NET|ASP.NET MVC从控制器中获取URL值
从控制器中获取URL的值有三种方式:
1、使用Request.QueryString[]
例如:
string value = https://www.it610.com/article/Request.QueryString["BookId"].ToString();
注意:Request.QueryString只能获取URL中以?分割的参数值。
案例演示:
action方法代码如下:
#region 1、通过Request.QueryString的方式获取URL的值public ActionResult Index(){// 获取路由数据if (Request.QueryString["BookId"] != null){string value = https://www.it610.com/article/Request.QueryString["BookId"].ToString(); ViewData["msg"] = value; }return View(); } #endregion
在前端页面添加一个P标签,用来输出BookId的值:
1、通过Request.QueryString获取URL的值:@ViewData["msg"]
运行结果
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参数的值:
2、通过RouteData获取URL的值:@ViewData["msg"]
运行结果:
文章图片
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); }}}
运行结果
文章图片
示例代码下载地址:点此下载
【ASP.NET|ASP.NET MVC从控制器中获取URL值】到此这篇关于ASP.NET MVC从控制器中获取URL值的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
推荐阅读
- 从零写vue日历组件
- unix是c语言编写的程序称为,从零开始C(节选自《C语言教程(原书第4版)》)
- ASP.NetCore+VUE|ASP.NetCore+VUE 实现学生成绩管理系统(一)
- [Golang]力扣Leetcode—剑指Offer—数组—17.打印从1到最大的n位数(遍历)
- 使用Visual|使用Visual Studio创建ASP.NET Web API项目
- 艺术品NFT交易平台搭建|NFT商城开发
- 微服务从代码到k8s部署应有尽有系列(十一、日志收集)
- 杂记|敖冰目录123
- rocketmq3
- 初识Spring IoC