Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C将目录名添加到URL地址#_C#_Asp.net - Fatal编程技术网

C# 使用C将目录名添加到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”仅作更改。 谢谢

我有一个文本框,用户可以在其中粘贴URL地址。在将其保存到数据库之前,我想在URL中添加一个目录名

<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的值,我们添加了一个获取参数的示例