【问题标题】: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

【问题讨论】:

    标签: asp.net-core razor razor-pages


    【解决方案1】:

    您可以使用您定义的任何路由访问页面,但框架中的出站 URL 生成组件(标签助手、IUrlHelper 等)将始终使用在生成出站 URL 时注册的最后一个路由,因此路由已注册。

    如果这不适合您(例如,因为您可能希望在不同的时间指向不同的路线),解决方案是使用标准的 HTML formaction 属性而不是自定义的 asp-* 属性到标签助手:

    <button formaction="/two?handler=update">Update</button>

    【讨论】:

      猜你喜欢
      • 2020-11-11
      • 2020-05-30
      • 1970-01-01
      • 2020-11-09
      • 2018-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-21
      相关资源
      最近更新 更多