【问题标题】:Routing to properties in Razor Pages路由到 Razor Pages 中的属性
【发布时间】:2020-03-24 18:50:21
【问题描述】:

假设我在 Razor Pages 的页面模型中为某种 id 编号添加了一个属性:

[BindProperty(SupportsGet = true)]
public int Id { get; set; }

然后我可以像这样通过 URL 设置Id

localhost:5001/?Id=1

但是,通常(例如,在创建 API 时)您可以通过以下方式获得更漂亮(至少我认为如此)的方式来设置 Id

localhost:5001/Id/1

默认情况下,这似乎不适用于 Razor Pages。有什么办法可以开启吗?

注意:我曾尝试在 Google 上搜索此内容,但我对术语有点不确定。设置属性的时候也叫路由吗?

【问题讨论】:

    标签: c# get razor-pages


    【解决方案1】:

    它叫做Route Data。您可以在路由模板中为路由数据参数指定占位符,作为 @page 指令的一部分:

    @page "{id}" // will match localhost:5001/1
    

    如果您希望“Id”一词出现在 URL 中(例如匹配 localhost:5001/Id/1),您的路由模板将如下所示:

    @page "Id/{id}"
    

    通常,您不会在路由模板中包含参数的名称。

    【讨论】:

    • 非常感谢。以这种方式处理空值(不通过 URL 输入)是否可行?如果我不添加任何内容,它会给我一个 404 Page not found。
    • 经过一番谷歌搜索,我发现了自己。如果您编写 {id?},如果 URL 中未提供任何输入,它将发送 null。如果其他人有同样的问题,也许您可​​以将其添加到您的答案中:-)。
    • 我链接到的页面解释了如何使用可选参数。
    • 确实如此。我的错 :-)。并再次感谢您的帮助。我真的开始爱上 Razor Pages 的简洁性了。
    猜你喜欢
    • 2019-03-25
    • 2018-12-05
    • 2018-07-18
    • 2019-07-05
    • 2019-01-29
    • 1970-01-01
    • 2022-01-07
    • 2019-07-02
    • 2021-05-14
    相关资源
    最近更新 更多