我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ASP.NETMVC对URL匹配操作

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ASP.NETMVC对URL匹配操作

1、使用{parameter}做模糊匹配

{parameter}:花括弧加任意长度的字符串,字符串不能定义成controller和action字母。默认的就是模糊匹配。

例如:{admin}。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace MVCURLMatch
{
    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            // 1、使用parameter做模糊匹配
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
    }
}

2、使用字面值做精确匹配

字面值即一个常数字符串,外面不能有{}。这个字符串可以在大括弧与大括弧之间,也可以在最前面和最后面。

例如:admin/{controller}/{action}/{id}

URL1:/admin/home/index/1 可以与上面定义的路由匹配。

URL2:/home/index/1 不可以与上面定义的路由匹配(缺少字面量admin)

// 2、使用字面量做精确匹配
routes.MapRoute(
       name: "Default2",
       url: "admin/{controller}/{action}/{id}",
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

URL里面缺少admin时的运行结果:

正确的URL:

注意:这时候admin也不区分大小写。

3、不允许连续的URL参数

两个花括弧之间没有任何的字面值是不可以的(两个花括弧之间必须跟上一个固定的字母或者符合,否则无法区分是哪个参数)。

{language}-{country}/{controller}/{action}/{id} 正确

{language}{country}/{controller}/{action}/{id} 错误

// 3、不允许连续的URL参数
routes.MapRoute(
       name: "Default3",
       url: "{language}-{country}/{controller}/{action}/{id}",
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

运行结果:

可以使用上篇文件中介绍的获取URL参数值的方式获取language和country参数的值,这里不在讲述如何获取。

4、使用*号匹配URL剩余部分

使用*来匹配URL剩余的部分,如*plus放在一个表达式的尾部,最后尾部的URL部分会保存为plus为键名的字典值。

routes.MapRoute(
       name: "Default4",
       url: "{controller}/{action}/{id}/{*plus}",
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

在Index方法里面输出plus参数的值:

public ActionResult Index(string plus)
{
       string value = string.Format("plus={0}", plus);
       ViewData["msg"] = value;
       return View();
}

运行结果:

5、URL贪婪匹配

在URL表达式中有一种特殊的情况:就是URL表达式可能和实际的URL有多种匹配的情况,这时候遵守贪婪匹配的原则。

从上图中可以看出,贪婪匹配的原则即从后往前匹配URL。

routes.MapRoute(
        name: "Default5",
        url: "{controller}/{action}/{id}/{filename}.{ext}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

在index方法里面分别获取filename和ext参数的值,并输出到页面

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

到此这篇关于ASP.NET MVC对URL匹配操作的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ASP.NETMVC对URL匹配操作

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ASP.NET MVC如何实现对URL匹配操作

这篇文章将为大家详细讲解有关ASP.NET MVC如何实现对URL匹配操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、使用{parameter}做模糊匹配{parameter}:花括弧加任意长度的字
2023-06-29

Windows8下设置蓝牙配对的操作步骤

今天小编给大家介绍Windows7台式机设置蓝牙的详细步骤。具体如下:1、电脑右下角的显示隐藏图标上点击,选择蓝牙图标。2、在打开的蓝牙设置窗口,选项标签页中,将允许蓝牙设备查找这台电脑打勾选定,点击右下角的应用,然后点击“确定
2022-06-04

jQuery如何显示或操作匹配元素所执行函数的队列。

jQuery队列是一种数据结构,用于存储和管理匹配元素上执行的函数。它提供对函数执行顺序的控制,防止竞态条件,并提高性能。使用queue()方法获取队列,使用dequeue()执行队列中的函数,并使用clearQueue()和stop()操作队列。队列提供了高级操作,包括获取下一个函数、检测队列长度、添加延迟,以及使用promise()跟踪执行进度。队列的优点包括消除竞态条件、提高性能、可预测性和易于调试。
jQuery如何显示或操作匹配元素所执行函数的队列。
2024-04-08

PHP数组操作中匹配搜索数组中的元素和键名是什么

本篇内容主要讲解“PHP数组操作中匹配搜索数组中的元素和键名是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP数组操作中匹配搜索数组中的元素和键名是什么”吧!in_array()函数-匹
2023-06-25

python星号(*)和双星号(**) 函数动态参数匹配及解包操作方法

这篇文章主要介绍了python星号(*)和双星号(**) 函数动态参数匹配及解包操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-03-06

PHP数据结构:字符串处理技巧,掌握高效字符串操作与匹配

掌握 php 字符串处理技巧,提升开发效率,包括:1. 使用 . 操作符连接字符串;2. 使用 substr() 函数截取子串;3. 使用 str_replace() 函数替换子串;4. 使用 preg_match() 函数使用正则表达式匹
PHP数据结构:字符串处理技巧,掌握高效字符串操作与匹配
2024-05-14

Python安装中如何对配置环境变量实际操作

这篇文章主要介绍“Python安装中如何对配置环境变量实际操作”,在日常操作中,相信很多人在Python安装中如何对配置环境变量实际操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python安装中如何对配
2023-06-17

python星号和双星号函数动态参数匹配及解包操作方法是什么

今天小编给大家分享一下python星号和双星号函数动态参数匹配及解包操作方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下
2023-07-05

把ChatGPT配置到微信群里可以对AI提问的操作教程

ChatGPT可用于为聊天机器人、虚拟助理和其他会话系统生成文本,并能够生成广泛的响应,包括对问题的简单回答、对需要更复杂推理或解释的提示的响应,以及旨在幽默或吸引人的响应,这篇文章主要介绍了把ChatGPT配置到微信群里,可以对AI提问了,需要的朋友可以参考下
2022-12-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录