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

 更新时间:2022年03月08日 11:20:28   作者:.NET开发菜鸟  
这篇文章介绍了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
            );
        }
    }
}

运行结果

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

到此这篇关于ASP.NET MVC从控制器中获取URL值的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • ASP.Net项目中实现微信APP支付功能

    ASP.Net项目中实现微信APP支付功能

    这篇文章介绍了ASP.Net项目中实现微信APP支付功能的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • .NETCore添加区域Area代码实例解析

    .NETCore添加区域Area代码实例解析

    这篇文章主要介绍了.NETCore添加区域Area代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • DataSet、DataTable、DataRow区别详解

    DataSet、DataTable、DataRow区别详解

    这篇文章主要介绍了DataSet、DataTable、DataRow区别详解,需要的朋友可以参考下
    2014-02-02
  • ASP.NET使用正则表达式屏蔽垃圾信息

    ASP.NET使用正则表达式屏蔽垃圾信息

    找资料,看看如何实现使用正则表达式屏蔽垃圾信息,找来找去找出来的都不怎么好,有不详细的,有代码缺失的。最后还是找到了微软,先摘过来,大概思路已经有了,只需把下面微软给的样例代码修改一下即可,具体能不能行还不知道,先睡一觉,起来再慢慢研究。
    2008-09-09
  • ASP.NET Core基于滑动窗口实现限流控制

    ASP.NET Core基于滑动窗口实现限流控制

    这篇文章主要介绍了ASP.NET Core基于滑动窗口实现限流控制,​AspNetCoreRateLimit是目前ASP.NET Core下最常用的限流解决方案,下面详细内容,需要的小伙伴可以参考一下
    2022-03-03
  • .NET 6开发TodoList应用之使用AutoMapper实现GET请求

    .NET 6开发TodoList应用之使用AutoMapper实现GET请求

    我们希望接受的请求和返回的值具有以下两点需要遵循的原则:每个model被且只被一个API消费;每个model里仅仅包含API发起方希望包含的必要字段或属性。AutoMapper库就是为了实现这个需求而存在的。本文将为大家介绍AutoMapper如何实现GET请求,需要的可以参考一下
    2021-12-12
  • Asp.net内置对象之Cookies(简介/属性方法/基本操作及实例)

    Asp.net内置对象之Cookies(简介/属性方法/基本操作及实例)

    本文将围绕cookies了解Cookies对象/Cookie对象的属性和方法/Cookie的基本操作及实例:Cookie的写入和读取/Cookie对象相比Session、Application的优缺点扥等,感兴趣的朋友可以了解下,或许对你学习cookies有所帮助
    2013-02-02
  • ASP.NET Core对Controller进行单元测试的完整步骤

    ASP.NET Core对Controller进行单元测试的完整步骤

    这篇文章主要给大家介绍了关于ASP.NET Core对Controller进行单元测试的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.NET Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-06-06
  • asp.net GridView中使用RadioButton单选按钮的方法

    asp.net GridView中使用RadioButton单选按钮的方法

    这篇文章主要介绍了asp.net GridView中使用RadioButton单选按钮的方法,结合实例形式总结分析了三种GridView中使用RadioButton单选按钮的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • ASP.NET网站聊天室的设计与实现(第3节)

    ASP.NET网站聊天室的设计与实现(第3节)

    这篇文章主要介绍了ASP.NET网站聊天室的设计与实现,了解Session、Application对象的属性和事件,并且掌握利用它们在页面间保存和传递数据的方法,需要的朋友可以参考下
    2015-08-08

最新评论