ASP.NET MVC从控制器中获取URL值
作者:.NET开发菜鸟 发布时间:2023-07-09 18:30:08
标签:ASP.NET,MVC,控制器,获取,URL,值
从控制器中获取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
0
投稿
猜你喜欢
- python可以在处理各种数据时,如果可以将这些数据,利用图表将其可视化,这样在分析处理起来,将更加直观、清晰,以下是 利用 PyEchar
- Python 中的 main 函数充当程序的执行点,在 Python 编程中定义 main 函数是启
- 今天想说的是内容和容器的关系,顺便把之前设计中碰到的问题和大家一起探讨下。我们从软件的设置说起。(这里以QQ的设置举例)一个软件的设置(常称
- 前言最近 GitHub 上有个基于 ChatGPT API 的浏览器脚本,openai-translator, 短时间内 star 冲到了
- 就如平时我们很在分页中看到的,分页的时候返回的不仅包括查询的结果集(List),而且还包括总的页数(pageNum)、当前第几页(pageN
- BatchNorm2d中的track_running_stats参数如果BatchNorm2d的参数val,track_running_st
- 操作系统:Win7IDE:PyCharm4.5.3Django:1.10.1报错代码:request.session['key
- 开始安装Androidstudio 4.1克隆此项目git clone https://github.com/pytorch/android
- 前篇我们稍微学习了Python中时间的获取,这次继续学习日期的时区转换,格式化等等。开发中常用的日期操作还有哪些?时区转换显示日期格式化秒数
- 为了实现项目中的搜索功能,我们使用的是全文检索框架haystack+搜索引擎whoosh+中文分词包jieba安装和配置安装所需包pip i
- 1.5 学习ASP.net 的过程中如何求助--加入 ASPNG 讨论列表 Charles Carroll 作为不断壮大的 ASP.NET
- 在判断列表是否为空时,你更喜欢哪种方式?决定因素是什么?在 Python 中有很多检查列表是否是空的方式,在讨论解决方案前,先说一下不同方法
- 目录前言1 异常类型1.1 Python内置异常1.2 requests模块的相关异常1.3 用户自定义异常2. 异常捕获2.1&
- asp程序运行速度试验实验:1。作相同的分支条件判断:IF 比 SELECT慢。用以下程序测试:
- SQL Server PRIMARY KEY(主键)约束简介主键是唯一标识表中每一行的一列或一组列。您可以使用主键约束为表创建主键。如果主键
- 介绍matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方
- 线性插值插值:是根据已知的数据序列(可以理解为你坐标中一系列离散的点),找到其中的规律,然后根据找到的这个规律,来对其中尚未有数据记录的点进
- python和PHP相比较,python适合做爬虫。原因如下抓取网页本身的接口相比与其他静态编程语言,如java,c#,C++,python
- 在处理表格型数据时,常会用到排序,比如,按某一行或列的值对表格排序,要怎么做呢?这就要用到 pandas 中的 sort_values()
- 我们的手头有一个写满数据的txt文件,如何将它录入Excel表格呢?Python将txt文件录入Excel 调用python中专门