gpt4 book ai didi

.net-core - 在 Razor 页面中绑定(bind)查询参数的规则

转载 作者:行者123 更新时间:2023-12-03 22:57:13 27 4
gpt4 key购买 nike

在 Razor Pages 中,如果您要调用,例如,非常方便,

http://localhost/foo?bar=42

在相应的模型中, bar key 可在 OnGet 中自动访问构造函数
public IActionResult OnGet(int bar)
{
System.Console.WriteLine($"bar is {bar}");
}

但是如果查询参数是 poo 怎么办? ?
http://localhost/foo?poo=42

然后在模型中, bar没有得到值 42。

如此简单,获取与查询参数键匹配的变量。但是如果键是连字符的怎么办?
http://localhost/foo?foo-bar=42
foo-bar绝对不是一个可接受的变量名。如何访问此查询参数?这里有什么规则?

在我的具体情况下,我别无选择,只能接收这些连字符的查询字符串参数。另外,我在 .net core 2.2 .

最佳答案

我认为 heiphens 用下划线表示,所以 foo-bar变成 foo_bar ,但是这违反了标准的 C# 命名约定。

无论如何,我不建议将查询参数绑定(bind)为处理程序参数。最干净的解决方案是在您的 PageModel 上定义一个属性。像这样:

// from the Microsoft.AspNetCore.Mvc namespace
[FromQuery(Name = "foo-bar")]
public string FooBar { get; set; }

这样,只要提供了与该名称匹配的查询参数,它将始终被绑定(bind)。无论特定的处理程序是否请求它。然后您可以访问您的 PageModel 上的属性。每当你需要它。因此,您的示例方法变为:

public void OnGet()
{
System.Console.WriteLine($"bar is {FooBar}");
}

关于.net-core - 在 Razor 页面中绑定(bind)查询参数的规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60231899/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com