Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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的onyl部分#_C#_Asp.net_Url - Fatal编程技术网

C# 如何在c中获取URL的onyl部分#

C# 如何在c中获取URL的onyl部分#,c#,asp.net,url,C#,Asp.net,Url,我正在使用C#创建一个模块,它需要引用URL 我这里有两个URL示例 && 现在我需要从这两个URL得到产品ID,第一个是8660,第二个是49950。我无法更改生成这些URL的方式。最简单的方法是 然后我可以做下面的事情,生活就会变得轻松 string Pid= Request.Querystring["rvdsfpid"]; 但是,由于我无法控制URL的生成方式,我如何捕获URL并仅获取productId。假设这是传递给您的URL格式,而您无法执行任何其他操作……您需要获取完整的UR

我正在使用C#创建一个模块,它需要引用URL 我这里有两个URL示例

&&

现在我需要从这两个URL得到产品ID,第一个是8660,第二个是49950。我无法更改生成这些URL的方式。最简单的方法是

然后我可以做下面的事情,生活就会变得轻松

string Pid= Request.Querystring["rvdsfpid"];

但是,由于我无法控制URL的生成方式,我如何捕获URL并仅获取productId。

假设这是传递给您的URL格式,而您无法执行任何其他操作……您需要获取完整的URL,然后将其拆分。这是基本的,你必须在里面添加一些额外的支票和东西

string url = "http://www.website.com/ProductDetail/tabid/86/rvdsfpid/1gb-dual-port-iscsi-8660/rvdsfmfid/qlogic-174/Default.aspx"
//string url = "http://www.website.com/ProductDetail/tabid/86/rvdsfpid/49950/default.aspx";

url = url.Replace("http://", ""); //get rid of that, add code to check for https?
string[] x = url.Split('/');
string productCode = x[5]; //assuming the product code is always the 6th item in the array!

string code = "";
if (productCode.IndexOf("-") > -1)
{
    code = productCode.Substring(productCode.LastIndexOf("-")+1);
}
else
{
    code = productCode;
}

给定像第一个示例一样的URL,如何确定哪个部分是产品ID?在两个示例中,搜索URL的相对位置是相同的:它位于从“www.website.com/ProductDetail/tabid/86/rvdsfpid/”后面开始并以下一个“/”结尾的块中,因此将该部分作为字符串获取没有问题,但是在1个示例中,在这个块中只有您正在查找的ID,在第二个示例中,有您正在查找的ID和我们不关心的数据,那么您如何知道您关心的是什么数据?