有没有一种方法可以将代码中的字典转换为URL参数字符串?
例如:
// An example list of parameters
Dictionary<string, object> parameters ...;
foreach (Item in List)
{
parameters.Add(Item.Name, Item.Value);
}
string url = "http://www.somesite.com?" + parameters.XX.ToString();
在MVC的HtmlHelpers中,可以使用UrlHelper(或者在控制器中使用Url)生成URL,但是在Web Forms的代码后台中,不存在此HtmlHelper。
string url = UrlHelper.GenerateUrl("Default", "Action", "Controller",
new RouteValueDictionary(parameters), htmlHelper.RouteCollection ,
htmlHelper.ViewContext.RequestContext, true);
在 MVC/Web Forms 应用程序中,如何在 C# Web Forms 代码后台完成这个操作而不使用 MVC Helper?
string.Format
重复了 (params.Count + 1) 次,创建了 IEnumerator<T> 对象,调用了很多方法。需要创建匿名方法。为了简单地连接字符串做了很多工作。 - Stas BZHttpUtility.UrlEncode("a=b&c=d")
会编码'='和'&'字符,返回"a%3db%26c%3dd"
。正确的方法是:$"https://example.com?{string.Join("&", parameters.Select(kvp => $"{HttpUtility.UrlEncode(kvp.Key)}={HttpUtility.UrlEncode(kvp.Value)}"))}"
。 - Cluster