2

私はルートリンクを持っています

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

その結果、"http://localhost:54614/api/v0.1/ReportData/Account"

私がやりたいのはルートリンクを書くことです-それは結果として

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

どうやってやるの ?

4

1 に答える 1

1

$top匿名タイプのプロパティ名として使用することはできないため、を使用する別のRoutelinkオーバーロードを使用する必要がありますRouteValueDictionary

ただし、問題は、をRouteLink使用Uri.EscapeUriStringしてルート値をエスケープするため、次のコードを使用することです。

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

このURLを生成します:(にエンコードされたを/api/Campaign?%24top=20参照)$%24

ただし、非常に汚いハックを使用しますUri.UnescapeDataString

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

得られる:/api/Campaign?$top=20

于 2012-06-12T20:31:34.130 に答える