gpt4 book ai didi

c# - 将 Odata 查询参数添加到 @html.Routelink

转载 作者:太空宇宙 更新时间:2023-11-03 13:59:45 26 4
gpt4 key购买 nike

我有一个routelink:

@Html.RouteLink("Campaigns", "DefaultApi", new { controller = "Campaign", httproute = true })

结果是 "http://localhost:54614/api/v0.1/ReportData/Account"

我想做的是写一个 Routelink - 这会导致

"http://localhost:54614/api/v0.1/ReportData/Account/?$top=20"

我该怎么做?

最佳答案

您不能将 $top 用作匿名类型中的属性名称,因此您应该使用不同的 Routelink 重载,它使用 RouteValueDictionary.

但问题是 RouteLink 使用 Uri.EscapeUriString 来转义路由值,因此使用以下代码:

@Html.RouteLink("Campaigns", "DefaultApi", new RouteValueDictionary
{
{ "controller", "Campaign"} ,
{ "httproute", true },
{ "$top", 20 }
})

将生成此 url:/api/Campaign?%24top=20(请参阅 $ 已编码为 %24)

但是使用了一个非常非常肮脏的 hack,即 Uri.UnescapeDataString:

@Html.Raw(Uri.UnescapeDataString(
@Html.RouteLink("Campaigns", "DefaultApi", new RouteValueDictionary
{
{ "controller", "Campaign"} ,
{ "httproute", true },
{ "$top", 20 }
}).ToHtmlString()))

可以获得:/api/Campaign?$top=20

关于c# - 将 Odata 查询参数添加到 @html.Routelink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11004261/

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