【发布时间】:2015-01-23 07:53:47
【问题描述】:
我想通过格式化常规字符串然后将其附加到当前查询字符串来将多个查询字符串键值对添加到 url。因为,据我所知,无法更改实际的 Request.QueryString。因此,我尝试将 kvp:s 附加到查询字符串中,如下所示。我搜索了 StackOverflow,但找不到与我的问题相符的答案。
protected void ServiceSelectionChanged(object sender, EventArgs e)
{
var regNr = registrationNumber.Text;
var selectedServiceType = SelectedServiceType.ToString("D");
string url = string.Empty;
BookingHelpers.FormatQueryStringUrl(this.Request, "serviceType", selectedServiceType, ref url);
BookingHelpers.FormatQueryStringUrl(this.Request, "regNr", regNr, ref url);
Server.Transfer(url, false);
}
public static void FormatQueryStringUrl(HttpRequest request, string key, string value, ref string url)
{
if (string.IsNullOrEmpty(url))
{
url = request.Url.PathAndQuery;
}
if (url.Contains("?"))
{
if (url.Contains("&" + key))
{
string currentValue = request.QueryString[key];
url = url.Replace("&" + key + "=" + currentValue, "&" + key + "=" + value);
}
else
{
url = String.Format(request.Url.PathAndQuery + "&" + key + "={0}", value);
}
}
else url = String.Format(request.Url.PathAndQuery + "?" + key + "={0}", value);
}
然而,这每次都使用 Request.QueryString,所以第一个 kvp 被覆盖。所以我的问题是:我怎样才能使这个工作,以便我可以将两个键值对附加到查询字符串?
【问题讨论】:
-
如果字符数较少,为什么不能构造一个对象并将其序列化并作为 JSON 字符串发送..
-
我不明白你的意思,对不起。
标签: c# webforms query-string