首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UriBuilder.Query

UriBuilder.Query
EN

Stack Overflow用户
提问于 2012-06-18 20:50:45
回答 2查看 5K关注 0票数 8

我在.NET中发现了一个奇怪的行为UriBuilder

Senario 1:

代码语言:javascript
复制
 Dim uri As New UriBuilder("http://www.test/login.aspx")
 uri.Query = "?test=Test"
 Dim url As String = uri.ToString()

运行此代码后,url字符串包含"http://www.test/login.aspx??test=Test

解决方案是不添加?

Senario 2:

代码语言:javascript
复制
 Dim uri As New UriBuilder("http://www.test/login.aspx?test=123")
 uri.Query += "&abc=Test"
 Dim url As String = uri.ToString()

在代码运行之后,我们又有了两个?"http://www.test:80/login.aspx??test=123&abc=Test"

那么,在使用uri构建器时,我做错了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-18 21:01:04

根据该类的MSDN docs上的注释,如果多次设置查询属性,则会出现此错误。

刚刚在反编译器中查看过,如果设置的值不为空,则Query的设置器总是预先设置一个前导?

票数 6
EN

Stack Overflow用户

发布于 2012-10-26 20:31:10

下面的示例设置Query属性。

代码语言:javascript
复制
   UriBuilder baseUri = new UriBuilder("http://www.contoso.com/default.aspx?Param1=7890");
   string queryToAppend = "param2=1234";

   if (baseUri.Query != null && baseUri.Query.Length > 1)
       baseUri.Query = baseUri.Query.Substring(1) + "&" + queryToAppend; 
   else
       baseUri.Query = queryToAppend;

第一个字符?不是必需的。

更多信息:http://msdn.microsoft.com/en-us/library/system.uribuilder.query.aspx

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11083277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档