asp.net-core - 不能对两个地址使用相同的剃须刀页面
问题描述
我如何在我的网络应用程序中的多个位置使用同一个剃须刀页面。
我有页面/one
,我也想用/two
和访问/three
。
我可以用 AddPageRoute 做到这一点:
options.Conventions.AddPageRoute("/one", "two");
options.Conventions.AddPageRoute("/one", "three");
但是页面中的 taghelpers 总是渲染formaction="/three?handler=Update"
指向最后一个路由,对于/one
,/two
或/three
这使得不可能在我的 Web 应用程序的不同位置使用相同的剃须刀页面。
解决方案
您可以使用您定义的任何路由访问页面,但框架中的出站 URL 生成组件(标签助手、IUrlHelper 等)将始终使用在生成出站 URL 时注册的最后一个路由,因此路由的顺序是注册的部分。
如果这不适合您(例如,因为您可能想在不同的时间指向不同的路线),解决方案是使用标准的 HTMLformaction
属性而不是asp-*
属于标签助手的自定义属性:
<button formaction="/two?handler=update">Update</button>
推荐阅读
- python - Pyspark:当使用广播变量调用函数时,您必须使用广播变量还是只能使用它的值?
- azure - 以与单个 DSC 配置不同的名称编译 Powershell DSC
- java - 在 Java 中处理初始值后不要关闭标准输入
- python - Pymongo如何查看文档是否已经存在多个键
- r - 不能执行超过 1 个函数调用
- linux - 基于 pptp VPN 的 Docker Swarm 集群
- image - 如何快速匹配图片地图上的地点列表?
- angular - 如何在导航栏中路由到导航栏
- visual-studio-code - VSCode - 仅针对小于号关闭自动右括号
- mongodb - 使用具有正确参考文档的 mongo id 数组创建 dto 属性