$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