更改 ASP.NET Core Razor Pages 中的默认路由

2023-12-29

由于我对 ASP.NET Core 中的 Razor Pages 概念不熟悉,我想应用通用 URL 将区域性参数传递给路由

我已经使用 MVC 做到了这一点,但我也想将其应用于 Razor 页面 这是我在 MVC 中所做的以及它根据需要工作

  routes.MapRoute(
                    name: "default",
                    template: "{culture}/{controller=Home}/{action=Index}/{id?}");

我已将其应用于特定页面并且它也起作用

   options.Conventions.AddPageRoute("/RealEstate/Index", "{culture}/RealEstate");

但是当我想申请所有页面时,它不起作用,而且我不知道应该作为 PageName 传递什么

 options.Conventions.AddPageRoute("*", "{culture}/{*url}");

我还想从该约定中排除 admin 文件夹,将其设置为 siteName.com/admin 而不是 en-US/Admin 我还需要在用户第一次打开网站时在 URL 中设置默认区域性,例如为 siteName.com 并加载默认区域性,甚至默认加载 siteName.com/en-US

Thanks.


您可以使用以下方式将路线模型约定应用于文件夹AddFolderRouteModelConvention https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.applicationmodels.pageconventioncollection.addfolderroutemodelconvention?view=aspnetcore-2.1。该文档有一个example https://learn.microsoft.com/en-us/aspnet/core/mvc/razor-pages/razor-pages-conventions?view=aspnetcore-2.1#page-route-action-conventions如何执行此操作,我已根据您的目的对其进行了修改:

options.Conventions.AddFolderRouteModelConvention("/", model =>
{
    foreach (var selector in model.Selectors)
    {
        selector.AttributeRouteModel = new AttributeRouteModel
        {
            Order = -1,
            Template = AttributeRouteModel.CombineTemplates(
                "{culture}",
                selector.AttributeRouteModel.Template),
        };
    }
});

这将约定应用于所有页面,因为"/"设置为文件夹,因此适用于根级别。这不是像我链接的示例中那样添加新的选择器,而是修改现有的选择器以在前面添加{culture}令牌,您可以通过名称在页面中访问该令牌,例如:

public void OnGet(string culture)
{
    // ...
}

Had we added a new选择器,无论有没有区域性,页面都可以访问,使其成为可选的。通过我所展示的方法,{culture}如 OP 中所示,需要令牌。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改 ASP.NET Core Razor Pages 中的默认路由 的相关文章

  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 忽略重复条目并在 EF Core 中的 DbContext.SaveChanges() 上提交成功条目

    我有一个 ASP Net Core 2 2 Web API 在我的一个控制器操作中 我向 MySQL 数据库表添加了一堆行 我使用的是 Pomelo 例如 dbContext AddRange entities dbContext Save
  • ASP.NET MVC,控制器可以改变提交的值吗?

    ASP NET MVC 中是否允许更改提交的值 HttpPost public ActionResult Create Person toCreate toCreate Lastname toCreate Lastname A return
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • Ajax 功能在移动浏览器上无法使用

    您好 感谢您查看此内容 对 jQuery ajax 等非常陌生 该网站可以通过 FTP 访问相应的服务器 因此我 据我所知 没有违反跨域策略 该网站在任何桌面浏览器上都可以正常工作 但不适用于任何移动浏览器 我觉得问题很明显 但我不知道该怎
  • 我可以从该字典的枚举循环中删除 ConcurrentDictionary 中的项目吗?

    例如 ConcurrentDictionary
  • Kubernetes 设置 Flannel Pod 网络

    我正在跟进本指南 https linuxconfig org how to install kubernetes on ubuntu 18 04 bionic beaver linux关于如何设置 kubernetes 群 我的群将如下 1
  • 实时时间序列数据中的峰值信号检测

    Update 性能最佳的算法so far 是这个吗 https stackoverflow com questions 22583391 peak recognition in realtime timeseries data 226403
  • 列出当前在 Google 云存储中的监视存储桶上设置的频道通知

    有谁知道如何列出当前在谷歌云存储中监视的存储桶上设置的通知 创建通道后必须有某种方法来获取通道和资源标识符 目前无法列出存储桶上的通知通道 如果您在创建时没有存储通道和资源标识符 您可以在请求标头中找到它们附加到传递到应用程序的通知消息中
  • 使用 UICollectionViewCell 上的按钮显示数组中的数据

    我有一个数组NSStrings one UILabel AUICollectionView 我的问题 我想要数组的计数来确定有多少UICollectionViewCell 有吗 Each UICollectionViewCell包含一个按钮
  • Xcode 9.2 中出现“警告:无法为签名者构建到自签名根的链”警告

    我正在尝试将 Xcode 项目迁移到另一台计算机 它向我发出警告 警告 无法为签名者构建到自签名根的链 并且当它运行时 它会立即崩溃 类似于此堆栈溢出中显示的内容 应用程序在模拟器上运行 但在 iPhone 上不起作用 dyld abort
  • 在 ASP.Net 中获取会话 ID

    如何获取当前所有会话的 ID 要获取会话 ID 请执行以下操作 In a user control or page string sessionId this Session SessionID In a normal class runn
  • CUDA:停止所有其他线程

    我有一个问题 似乎可以通过枚举所有可能的解决方案然后找到最佳解决方案来解决 为此 我设计了一种回溯算法 可以枚举并存储找到的最佳解决方案 到目前为止效果很好 现在 我想将此算法移植到 CUDA 中 因此 我创建了一个生成一些不同的基本案例的
  • 为什么 NotImplemented 不引发 TypeError?

    假设我定义一个类A我不希望任何人写出该类别的不等式而无法逃脱 class A def ne self other return NotImplemented print A A 但这打印出来True并且不会引发TypeError虽然我故意
  • 在 MySQL 中查找列上具有相同值的行

    在 member 表中 某些行具有相同的值email column login id email john email protected cdn cgi l email protection peter email protected c
  • 导入错误:没有名为六的模块;已安装六个

    我在 Mac OS X El Capitan 上运行 python 3 6 我正在尝试运行使用六个模块的代码 但收到以下错误 ImportError No module named six 当我搜索六个时 似乎没有问题 并且我已确保该位置包
  • .net core实体框架(EF Core)表命名约定

    net core实体框架 EF Core 表命名约定复数到单 简单 下划线 成为以下人士的粉丝single simple underscore表名的命名约定 我觉得这种方式不舒服EF core正在命名表Plural PascalCase M
  • 如何将 mongo 命令结果保存到平面文件中

    如何将 MongoDB 命令的结果导出到平面文件 例如 如果我要得到db collectionname find 到平面文件中 I tried db collectionname find gt gt test txt 似乎不起作用 您可以
  • 将包含不同数据但具有公共引用的多行“展平”为单行

    我尝试在 Stackoverflow 和 Google 上搜索此问题的答案 但尚未找到 我认为我的部分问题是我不确定我想要做的事情的关键字是什么 我的数据看起来像这样 ID Var1 Var2 Name 01 0001 0002 Bill
  • ios 每小时轮询 TCP 服务器

    在我当前的应用程序中 我需要每小时通过 TCP 连接轮询一次服务器 我知道最好的选择之一是使用服务器端的推送通知 但我不能这样做 因此 目前我正在使用一个每 9 分钟触发一次的计时器 以保持应用程序在后台运行 这工作正常 在我向服务器调用民
  • FileSystemWatcher:如何知道哪个进程进行了更改?

    是否可以获得导致文件系统更改的进程的名称 我想以编程方式执行此操作 即 我不能使用任何外部第三方工具 例如句柄 有任何想法吗 操作系统不提供此类信息 您需要一个文件系统过滤器驱动程序来对文件系统上所做的更改进行细粒度控制
  • 如何用多个表填充数据集?

    我正在尝试填充包含 2 个具有一对多关系的表的 DataSet 我正在使用 DataReader 来实现此目的 public DataSet SelectOne int id DataSet result new DataSet using
  • 在 Windows 10 上运行 R/RStudio

    我已经在 Windows 7 8 上使用 R RStudio 几个月了 现在我收到了 Microsoft 的升级邀请 但同时我听说旧版本的 Windows 与 Windows 之间存在严重的兼容性问题10 我需要知道是否可以在 Window
  • 更改 ASP.NET Core Razor Pages 中的默认路由

    由于我对 ASP NET Core 中的 Razor Pages 概念不熟悉 我想应用通用 URL 将区域性参数传递给路由 我已经使用 MVC 做到了这一点 但我也想将其应用于 Razor 页面 这是我在 MVC 中所做的以及它根据需要工作