Den*_*gan 4 asp.net uri query-string
我正在写一个方法,让我们说,给予1并hello应该返回http://something.com/?something=1&hello=en.
我可以很容易地将它们组合在一起,但ASP.NET 3.5为构建URI提供了哪些抽象功能?我喜欢这样的东西:
URI uri = new URI("~/Hello.aspx"); // E.g. ResolveUrl is used here
uri.QueryString.Set("something", "1");
uri.QueryString.Set("hello", "en");
return uri.ToString(); // /Hello.aspx?something=1&hello=en
Run Code Online (Sandbox Code Playgroud)
我发现这个Uri课程听起来非常相关,但我找不到任何能真正完成上述课程的课程.有任何想法吗?
(对于它的价值,参数的顺序对我来说无关紧要.)
Zha*_*uid 13
编辑纠正大量错误的代码
基于对类似问题的回答,您可以轻松地执行以下操作:
UriBuilder ub = new UriBuilder();
// You might want to take more care here, and set the host, scheme and port too
ub.Path = ResolveUrl("~/hello.aspx"); // Assumes we're on a page or control.
// Using var gets around internal nature of HttpValueCollection
var coll = HttpUtility.ParseQueryString(string.Empty);
coll["something"] = "1";
coll["hello"] = "en";
ub.Query = coll.ToString();
return ub.ToString();
// This returned the following on the VS development server:
// http://localhost/Hello.aspx?something=1&hello=en
Run Code Online (Sandbox Code Playgroud)
这也将对集合进行urlencode,因此:
coll["Something"] = "1";
coll["hello"] = "en&that";
Run Code Online (Sandbox Code Playgroud)
将输出:
Something=1&hello=en%26that
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9161 次 |
| 最近记录: |