我看过this answer描述 ASP.NET 对无键(不是无值)参数的支持,例如 http://some.url?param1¶m2
,并确认它们可以在 Request.QueryString
上查看,例如:
var values = this.Request.QueryString.GetValues(null);
values.Any(o => o == "param1");
这很好,但现在我想生成这样的 url。我的第一直觉是使用 Url.Action
的 RouteValueDictionary: routeValues
参数并将 null 作为键:
@{
var dict = new RouteValueDictionary();
dict.Add(null, "param1");
dict.Add(null, "param2");
}
<a href="@Url.Action("ActionName", dict)">Very link, amaze</a>
但显然是 C# forbids nulls as dictionary keys因为一些原因。
我也尝试过将空字符串作为键,但它会产生如下查询字符串:?=param1,=param2
其中包含我想要的另外 2 个等号。
当然,我可以对我的 URL 进行字符串操作,并将 ¶m1
部分添加到查询字符串中,但我希望有一个简洁的解决方案。
最佳答案
您想要添加键值,但不允许将值保留为 null。
RouteValueDictionary ignores empty values
例如,您可以添加一个值,如 1,但您失去了很好的解决方案。
@{
var dict = new RouteValueDictionary();
dict.Add("param1",1);
}
<a href="@Url.Action("Index", dict)">Very link, amaze</a>
对于另一种解决方案,您将不得不编写一些自定义代码。
关于c# - 如何在 ASP.NET 中创建无 key URL 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41550055/