防止在 Razor 页面中自动传递 URL 参数

2024-06-21

我正在为 Web 应用程序使用 .NET Core 2“Razor Pages”格式。它允许您使用顶部的简单指令定义如何将 URL 映射到变量名称:

@page "{personId:int?}"

例如,上面的内容将映射 URL/Person/Index/123 to the IndexModel.OnGetAsync(int personId)函数使得personId值为 123。

但是,我注意到,如果页面上存在链接,这些值似乎会自动添加到可能的任何 URL 中。如果我将以下内容添加到索引页面:

<a asp-page="/Person/Details">Details</a>

...生成的实际 HTML 是:

<a href="/Person/Details/123">Details</a>

...这意味着由于索引和详细信息页面顶部具有相同的指令,因此值personId在它们之间隐式传递。

有什么办法可以防止这种情况发生吗?asp-page="/Person/Details"将简单地重定向到“详细信息”页面,而不传递任何值personId?


For Asp.Net Core,当前请求的当前路由值被视为链路生成的环境值。

对于您的情况,123 为personId将被重新用于<a asp-page="/Person/Details">Details</a>链接生成。

在此 url 生成过程中,您可以尝试从以下位置删除该值RouteData

        public async Task OnGetAsync(int? personId)
    {
        Person = await _context.Person.ToListAsync();
        RouteData.Values.Remove("personId");
    }

对于另一种更好的方法,您可以尝试从 url 生成中删除该值。

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

防止在 Razor 页面中自动传递 URL 参数 的相关文章

随机推荐

  • Heroku 上的 Rails 4 应用程序中未初始化的常量 Moped::BSON

    我刚刚从rails 3更新到rails 4 一切都在本地运行 但部署在heroku上 出现以下错误 ActionView Template Error uninitialized constant Moped BSON 3 nav navb
  • 如何在shell脚本中给出密码?

    在 shell 脚本文件中 我使用一些命令 例如scp and make install要求我输入密码 我运行一个 shell 脚本来编译一个大项目 一段时间后它会要求我输入密码才能使用scp 我需要等待该过程并在此之后提供密码 我只想通过
  • 我可以使用“导入 com.facebook.FacebookSdk;”使用 Facebook SDK 3.23.1?

    在我的 app build gradle 文件中 我有compile com facebook android facebook android sdk 3 23 1 在我的 BaseActivity java 文件 其中有 public
  • Quartz.NET 中无法加载作业程序集错误

    我使用 Quartz NET 调度程序作为独立的 Windows 服务 同时从 ASP NET 应用程序安排作业 我有一个单独的作业程序集 但出现以下错误 无法加载文件或程序集 AV Scheduler Jobs Version 1 0 0
  • XSL 和命名空间

    这可能是一个非常简单的问题 但我似乎无法理解这个问题 并且我正在抓狂 我有以下 XML
  • 如何获取 RxJSSubject 或 Observable 的当前值?

    我有 Angular 2 服务 import Storage from storage import Injectable from angular2 core import Subject from rxjs Subject Inject
  • 如何从 vbScript 调用 .NET 代码 (C#/vb.net)?

    我想我可以编译一个 C DLL 然后将其公开为 COM 对象 以便可以从 VBscript 中 CreateObject 我只是不确定执行此操作所涉及的步骤 做到这一点非常简单 但还有很多地方并不那么简单 这在很大程度上取决于您的类需要做什
  • 可以使定理数表现得像乳胶中的小节数吗?

    我想问两个关于 Latex 中编号方案的问题 我无法找到任何精确的参考 如果有人能帮助我解决这个问题 我将非常高兴 问题1 是否可以对定理和小节进行一致编号 如下所示 2 第二节 2 1 小节 2 1 1 小节 定理 2 1 2 请注意 定
  • 基于浏览器的IDE? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • npm install 不下载最新包

    语境 我在使用 npm install 命令使用最新的依赖项更新我的 package json 时遇到问题 我正在具有多分支管道的 Jenkins 从属设备上运行 不确定这是否是原因 另一个帖子有类似的问题 但没有得到答复 npm 安装后
  • 在 PyCharm 中运行或调试时增加输出缓冲区

    我的控制台输出超出了 运行 输出窗口中 PyCharm 的缓冲区大小 因此 当我在测试完成后滚动到顶部时 我无法一直到达控制台输出的开头 我可以在外部终端窗口中运行测试并查看所有输出 但与 PyCharm 的集成很方便 有没有办法增加 Py
  • CORS 与 Dart,如何让它发挥作用?

    刚开始摆弄 Dart 我决定编写一个简单的 Http 服务器和客户端 我的服务器代码 import dart io final HOST 127 0 0 1 final PORT 8080 final LOG REQUESTS true v
  • HTML 覆盖高度覆盖整个可见页面

    我有一个使用 AJAX 加载一些内容的网页 我想在加载过程中显示带有加载指示器的覆盖层 以便用户无法与页面的大部分内容交互 除了顶部的菜单 我正在使用 jQuery 和jQuery BlockUI 插件 http malsup com jq
  • Spring Rest POST Json RequestBody 不支持内容类型

    当我尝试使用 post 方法发布新对象时 RequestBody 无法识别 contentType Spring 已经配置完毕 POST 可以与其他对象一起使用 但不能与这个特定对象一起使用 org springframework web
  • NHibernate 二级缓存 - 驱逐区域

    我们在 nHibernate 实现中设置了许多缓存区域 为了避免负载平衡 Web 服务器出现问题 我想有效地禁用编辑缓存数据的页面上的缓存 我可以编写一个方法来轻松清除所有查询缓存 类缓存和实体缓存 但我真正想要的是按区域清除缓存 sess
  • WPF 媒体格式

    WPF 是否内置对任何音频和视频格式的支持 我将使用 MediaPlayer 和 MediaElement 类来构建一个小型媒体播放器 目前 我不想处理 NET 没有本机支持的编解码器和格式 WPF 默认支持视频格式 WMV MPEG 和一
  • 未捕获的类型错误:this.props.signinUser 不是一个函数(…)

    src actions index js import axios from axios const ROOT URL http localhost 3090 export function signinUser email passwor
  • 如何在 iOS 7 中刷新 UICollectionViewCell?

    我正在尝试在 Xcode 5 中开发我的应用程序并在 iOS 7 环境下调试它 我有一个自定义的 UICollectionViewLayoutAttributes 我打算在长按 UICollectionViewCell 后执行一些操作 因此
  • 如何从表中选择所有偶数 id?

    我想从 MySQL 数据库的表中选择所有甚至帖子 ID 然后显示它们 我还想获取所有带有奇怪 id 的帖子并将它们显示在其他地方 我想使用 PHP 来完成此操作 因为这是我使用的服务器端语言 或者 我是否必须选择所有帖子 然后使用 Java
  • 防止在 Razor 页面中自动传递 URL 参数

    我正在为 Web 应用程序使用 NET Core 2 Razor Pages 格式 它允许您使用顶部的简单指令定义如何将 URL 映射到变量名称 page personId int 例如 上面的内容将映射 URL Person Index