ASP.NET MVC 2 中带有约束的可选路由参数?

2023-11-24

如果我有这样的路线:

routes.Add(new Route("{controller}/{page}", 
    new RouteValueDictionary
    {
        { "page", UrlParameter.Optional }
    },
    new RouteValueDictionary
    {
        { "page", @"[Pp]age\d+" }
    }, 
    new MvcRouteHandler()
));

然后,当缺少 {page} 时,路线不匹配,但是如果我删除它匹配的约束。这是一个错误还是一个功能?


我在用着^$|在正则表达式中,例如:(^$|[Pp]age\d+)。我在寻找这个问题的答案时发现了这个问题,并认为我应该添加我在这里找到的内容。

routes.MapRoute(
  name: "News Archive",
  url: "News/{page}",
  defaults: new { controller = "news", action = "List", page= UrlParameter.Optional },
  constraints: new { page= @"^$|[0-9][0-9]" });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET MVC 2 中带有约束的可选路由参数? 的相关文章

随机推荐

  • 如何在IdentityServer4中进行多步登录?

    我们使用 IdentityServer3 隐式授权并且登录由多个屏幕组成 在 IdentityServer3 中 内置了对此类多步骤登录工作流程的支持 例如接受 EULA 双因素登录等 该功能称为 部分登录 甚至还有一个例子 https g
  • 在 Eclipse 中使用 Ant 的类路径

    我有一只蚂蚁build xml文件在命令行上运行得很好 它编译 构建 JAR 并且我能够从 JAR 中很好地执行 main 方法 这build xml文件引用了分散在各处的几个第三方库 构建 JAR 时 脚本不会将所有第三方库包含到 JAR
  • 这是从数组哈希中获取公共元素的最佳方法吗?

    我正在尝试从 Ruby 中的一组数组中获取一个公共元素 通常 您可以使用 运算符来比较两个数组 返回两个数组中存在或共有的元素 这一切都很好 除非您试图从多个对象中获取共同元素two数组 但是 我想从未知的动态数组数量 它们存储在哈希中 我
  • 如何处理原始可空类型的 Spark UDF 输入/输出

    问题 1 如果输入是包含以下内容的原始类型列 Spark 不会调用 UDFnull inputDF show x null 1 0 inputDF withColumn y udf x Double gt 2 0 apply x will
  • 禁用 jQuery 中的按钮

    我的页面创建多个按钮id rbutton i 下面是我的代码
  • Eclipse 错误:无法确定 /project-path/ 的 URI

    我在 VirtualBox 中的 Ubuntu 12 0 4 上使用 Windows 8 主机运行 Eclipse Luna 每隔一段时间 我就会启动 Ubuntu 并打开 Eclipse 来查找以下内容 我的项目应该列在包资源管理器中 但
  • python的“in”语言构造对于列表来说是线程安全的吗?

    Is obj in a list线程安全的同时a list可能会在不同的线程中修改 这是一个全面但非详尽的示例列表 of list操作以及它们是否是线程安全的 但是我找不到任何参考in语言构造 在 python 实现方面 我使用 CPyth
  • 简单的 html dom 抓取大型 html 文件

    我需要抓取一个大的 html 文件 例如 http www indianrail gov in mail express trn list html 使用简单的 html dom 我从一个简单的脚本开始 它什么也没显示 只是一个空白页 其中
  • 查找 TabStrip 索引

    是否可以在 KendoUI TabStrip 中找到选项卡的索引 我需要找到我选择的选项卡的索引 编号 并且我知道select 返回我当前的选项卡 但我不知道如何将其转换为数字 找到了解决方案 tabstrip data kendoTabS
  • VAO 是否会记住 EBO/IBO(元素或索引)和 VBO?

    我的代码正在正常工作 但这可能是一个巧合 我不想稍后再纠缠于错误 所以我试图尽可能保持它干净 我执行以下操作来初始化网格 生成并绑定 VBO 和缓冲区数据 生成并绑定 IBO 和缓冲区数据 生成并结合 VAO 绑定与之前相同的 VBO 在
  • 如何在Windows中异步打开文件

    有没有办法在 Windows 中异步打开文件 CreateFile API 函数只有 FILE FLAG OVERLAPPED 允许进一步异步读取和写入 尽管如此 文件的打开似乎是同步的 鉴于它必须访问文件系统 并可能执行昂贵的 IO 操作
  • 使用 fscanf 读取双精度

    我想从文本文件中读取双精度值 例如 31 39 9316476397222 116 113516352222 我两种都试过了 没用 我只能读取前几位十进制数字 例如39 93164 但不是 39 9316476397222 有人知道为什么吗
  • 无需光标即可在 Android Sqlite 中访问大型 BLOB

    Android 的光标窗口大小似乎有 1MB 的限制 这限制了从 SQLite 读取 BLOB 的能力 我知道您可能会说我们不应该将 BLOB 存储在数据库中 但根据定义 BLOB 被视为二进制大对象 如果不需要将它们存储在数据库中 则无需
  • 如何生成多重集的所有排列?

    多重集是一个集合 其中所有元素可能不唯一 如何枚举集合元素之间所有可能的排列 生成所有可能的排列然后丢弃重复的排列是非常低效的 存在各种算法来直接生成按字典顺序或其他类型的排序的多重集的排列 Takaoka 的算法是一个很好的例子 但 Aa
  • 编译后的 .lib 文件对于不同版本的 Microsoft Visual C++ 是否可以互换?

    有些项目为 C 以及可能的 C 不确定 库提供了一组 Windows 二进制文件 例如 请参阅右侧的链接这个 libxml 相关页面 我很确定没有办法在 VC lib 文件和 MinGW GCC a 文件之间进行转换 因此将它们称为 Win
  • 链接器命令失败,架构 i386 的符号未定义

    我正在尝试执行半页卷曲功能 这是我正在使用的代码 import
  • &**this 到底返回什么?

    这是指向调用对象的指针 它返回右值 这是一个指向调用对象的指针的指针 它返回地址的值 这是一个指向调用对象的指针的指针 这是对调用对象的指针的指针的引用 std vector
  • Google OR 工具 - 火车调度问题

    我试图解决的问题有点像这里的员工调度问题 https github com google or tools blob master examples python shift scheduling sat py 然而 有一些事情我被困住了
  • 对于 SQL Server 2005 表来说,多少列过多?

    我有一个请求 允许动态表拥有 1000 列 由我的最终用户随机选择 这对我来说似乎是个坏主意 这是一个可定制的表格 因此它混合了varchar 200 and float列 float 最适合应用程序 c double 类型 该数据库主要是
  • ASP.NET MVC 2 中带有约束的可选路由参数?

    如果我有这样的路线 routes Add new Route controller page new RouteValueDictionary page UrlParameter Optional new RouteValueDiction