c# - 如何在 ASP.NET 中创建无 key URL 参数

标签 c# asp.net query-string

我看过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.ActionRouteValueDictionary: 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/

相关文章:

C# 在工具箱中包含派生控件

c# - ASP.NET GridView 列删除

c# - 访问动态创建的控件的值 c# asp.net

asp.net - 这个 Telerik.Web.UI.dll 可以免费使用吗?

php - 如何删除查询字符串并仅获取 URL?

c# - 从 BIML 脚本自动生成 SSIS 包

c# - 是否可以在一个 Excel 实例中使用多核?

c# - 级数计算

javascript - 将 json 数组转换为查询字符串给出 null

sql-server - 在 SQL Server 2005 中解析 QueryString