加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET:URI处理

发布时间:2020-12-16 07:36:32 所属栏目:asp.Net 来源:网络整理
导读:我正在写一个方法,比方说,1,你好,应该返回http://something.com/?something=1u0026amp;hello=en. 我可以很容易地将它们组合在一起,但ASP.NET 3.5为构建URI提供了哪些抽象功能?我喜欢这样的东西: URI uri = new URI("~/Hello.aspx"); // E.g. ResolveUrl i
我正在写一个方法,比方说,1,你好,应该返回http://something.com/?something=1u0026amp;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类听起来非常相关,但我找不到任何真正完成上述操作的内容.有任何想法吗?

(对于它的价值,参数的顺序对我来说无关紧要.)

解决方法

编辑纠正大量错误的代码

基于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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读