不能对两个地址使用相同的剃须刀页面
Posted
技术标签:
【中文标题】不能对两个地址使用相同的剃须刀页面【英文标题】:Cannot use same razor page for two addresses 【发布时间】:2021-09-22 16:31:40 【问题描述】:我如何在我的网络应用程序中的多个位置使用同一个剃须刀页面。
我有/one
页面,我还想通过/two
和/three
访问。
我可以用 AddPageRoute 做到这一点:
options.Conventions.AddPageRoute("/one", "two");
options.Conventions.AddPageRoute("/one", "three");
但页面中的 taghelper 总是呈现指向最后一条路线的 formaction="/three?handler=Update"
,/one
、/two
或 /three
也是如此
这使得在我的 Web 应用程序的不同位置使用相同的剃须刀页面成为不可能。
Git 示例:https://github.com/enricoe73/OnePage2Routes.git
【问题讨论】:
【参考方案1】:您可以使用您定义的任何路由访问页面,但框架中的出站 URL 生成组件(标签助手、IUrlHelper 等)将始终使用在生成出站 URL 时注册的最后一个路由,因此路由已注册。
如果这不适合您(例如,因为您可能希望在不同的时间指向不同的路线),解决方案是使用标准的 html formaction
属性而不是自定义的 asp-*
属性到标签助手:
<button formaction="/two?handler=update">Update</button>
【讨论】:
以上是关于不能对两个地址使用相同的剃须刀页面的主要内容,如果未能解决你的问题,请参考以下文章