C# 使用C将目录名添加到URL地址#
我有一个文本框,用户可以在其中粘贴URL地址。在将其保存到数据库之前,我想在URL中添加一个目录名C# 使用C将目录名添加到URL地址#,c#,asp.net,C#,Asp.net,我有一个文本框,用户可以在其中粘贴URL地址。在将其保存到数据库之前,我想在URL中添加一个目录名 <asp:TextBox ID="urlTextbox" runat="server"></asp:TextBox> 比如urlString=“mydomain.com/123456”。我想用“mydomain.com/directory/123456”替换它。mydomain.com/directory对于所有URL都是相同的。最后一部分“123456”仅作更改。 谢谢
<asp:TextBox ID="urlTextbox" runat="server"></asp:TextBox>
比如urlString=“mydomain.com/123456”。我想用“mydomain.com/directory/123456”替换它。mydomain.com/directory对于所有URL都是相同的。最后一部分“123456”仅作更改。
谢谢这是一种方法。使用.Split()函数拆分URL字符串
string[] parts = urlString.Split('/');
零件[parts.Length-1]将具有该编号。将其附加到所需的字符串。这是一种方法。使用.Split()函数拆分URL字符串
string[] parts = urlString.Split('/');
零件[parts.Length-1]将具有该编号。将其附加到所需的字符串。您可以使用字符串函数
Split
和Join
来获得结果。下面显示了一个示例代码
List<string> parts = urlString.Split(new char[] { '/'}).ToList();
parts.Insert(parts.Count - 1, "directory");
urlString = string.Join("/", parts);
List parts=urlString.Split(新字符[]{'/}).ToList();
parts.Insert(parts.Count-1,“目录”);
urlString=string.Join(“/”,parts);
您可以使用字符串函数Split
和Join
来实现您的结果。下面显示了一个示例代码
List<string> parts = urlString.Split(new char[] { '/'}).ToList();
parts.Insert(parts.Count - 1, "directory");
urlString = string.Join("/", parts);
List parts=urlString.Split(新字符[]{'/}).ToList();
parts.Insert(parts.Count-1,“目录”);
urlString=string.Join(“/”,parts);
我会这样做:
//Assuming the address in urlString has the format mydomain.com/123456
string[] urlParts = urlString.Split('/');
string directory = "directory";
string finalUrl = urlParts[0] + "/" + directory + "/" + urlParts[1];
如果地址有其他“/”字符,如前面有http://或类似的字符,请小心
希望有帮助。我会这样做:
//Assuming the address in urlString has the format mydomain.com/123456
string[] urlParts = urlString.Split('/');
string directory = "directory";
string finalUrl = urlParts[0] + "/" + directory + "/" + urlParts[1];
如果地址有其他“/”字符,如前面有http://或类似的字符,请小心
希望能有所帮助。我建议看看你的需求是否能在课堂上得到满足 现在,您可以使用各种属性来更改url
string formattedUrl = string.Format("{0}://{1}/directory/{2}", url.Scheme, url.Host, url.Path);
更好的方法是使用另一个/相同的UriBuilder
调整URL,如Jared所述
UriBuilder url = new UriBuilder(urlTextbox.Text);
url.Path = string.Format("directory/{0}", url.Path);
只需执行以下操作,即可将此对象用作Uri
Uri formattedUrl = url.Uri;
如果需要,也可以转换为字符串
string formattedUrl = url.ToString();
您还可以使用Uri.TryParse(…)
验证输入到文本框中的URL是否有效
要获取单个查询参数,可以查看Uri
对象
UriBuilder url = new UriBuilder("mydomain.com/123456?qs=aaa&bg=bbb&pg=ccc");
url.Path = string.Format("directory/{0}", url.Path);
Uri formattedUrl = url.Uri;
string queryString = formattedUrl.Query;
// parse the query into a dictionary
var parameters = HttpUtility.ParseQueryString(queryString);
// get your parameters
string qs = parameters.Get("qs");
string bg = parameters.Get("bg");
string pg = parameters.Get("pg");
我建议看看你的需求是否得到了满足 现在,您可以使用各种属性来更改url
string formattedUrl = string.Format("{0}://{1}/directory/{2}", url.Scheme, url.Host, url.Path);
更好的方法是使用另一个/相同的UriBuilder
调整URL,如Jared所述
UriBuilder url = new UriBuilder(urlTextbox.Text);
url.Path = string.Format("directory/{0}", url.Path);
只需执行以下操作,即可将此对象用作Uri
Uri formattedUrl = url.Uri;
如果需要,也可以转换为字符串
string formattedUrl = url.ToString();
您还可以使用Uri.TryParse(…)
验证输入到文本框中的URL是否有效
要获取单个查询参数,可以查看Uri
对象
UriBuilder url = new UriBuilder("mydomain.com/123456?qs=aaa&bg=bbb&pg=ccc");
url.Path = string.Format("directory/{0}", url.Path);
Uri formattedUrl = url.Uri;
string queryString = formattedUrl.Query;
// parse the query into a dictionary
var parameters = HttpUtility.ParseQueryString(queryString);
// get your parameters
string qs = parameters.Get("qs");
string bg = parameters.Get("bg");
string pg = parameters.Get("pg");
只需使用串联:
保存在临时字符串中
temp="mydomain.com/directory/"
并将更改部分保存在另一个字符串中,如
temp2="123456"
现在连接temp1和temp2,如下所示
urlString=temp1+temp2;
只需使用串联:
保存在临时字符串中
temp="mydomain.com/directory/"
并将更改部分保存在另一个字符串中,如
temp2="123456"
现在连接temp1和temp2,如下所示
urlString=temp1+temp2;
应该很乐意展示如何将URL设置回响应,可能她必须重定向到这个新的。@Fals我不明白。请你解释一下好吗?不管怎样,我误解了这个问题,她只需要在URL中插入目录。最好能说明如何将URL设置回响应,也许她必须重定向到这个新的。@Fals我不明白。你能解释一下吗?不管怎样,我误解了这个问题,她只需要在URL中插入目录。或者更好的是,让
formattedUrl
成为第二个UriBuilder,而不是stringGreat。还有一件事…如何使用UriBuilder从URL检索querystring的值。假设我想在mydomain.com/123456?qs=aai中检索qs的值,我们添加了一个获取参数的示例,或者更好地将formattedUrl
作为第二个UriBuilder,而不是stringGreat。还有一件事…如何使用UriBuilder从URL检索querystring的值。假设我想在mydomain.com/123456?qs=aaaI中检索qs的值,我们添加了一个获取参数的示例