gpt4 book ai didi

ASP.NET:URI 处理

转载 作者:行者123 更新时间:2023-12-03 18:17:00 24 4
gpt4 key购买 nike

我正在编写一个方法,假设给定 1hello应该返回 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

我找到了 Uri听起来高度相关的类(class),但我找不到任何真正做到上述内容的类(class)。有任何想法吗?

(对于它的值(value),参数的顺序对我来说并不重要。)

最佳答案

编辑以纠正大量不正确的代码

基于 this answer对于类似的问题,您可以轻松地执行以下操作:

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

这也会对集合进行 urlencode,因此:
coll["Something"] = "1";
coll["hello"] = "en&that";

将输出:
Something=1&hello=en%26that 

关于ASP.NET:URI 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1748609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com