How to substring from a link at specific character?
我不知道它有什么问题?我试图解决它,但我没有得到任何结果!!
我的浏览器链接
1 | http://localhost:49496/Activated.aspx?id=2 |
代码是
1 2 3 4 5 | string uri = HttpContext.Current.Request.Url.AbsoluteUri; int num1 = uri.IndexOf('='); int num2=uri.Length-1; string ID = uri.Substring(num1,num2); |
错误提示:
索引和长度必须引用字符串中的位置。
参数名称:长度
那么,它有什么问题呢?!
如果你只是想隔离参数:
1 | string ID = uri.Substring(num1); |
(David Pilkington 对失败原因的解释是正确的。)
问题在于第二个参数是您要查找的子字符串的长度,并且
将第二个参数改为
另一种方法是不包含第二个参数。在这种情况下,从您提供的索引中获取子字符串,直到字符串结尾。
在这里,阅读有关该方法的 MSDN 文档,您会发现哪里出错了
String.Substring 方法 (Int32, Int32)
你最好的选择是
1 | uri.Substring(uri.IndexOf('=')+1); |
子字符串不是执行您正在尝试执行的操作的方法...这是获取查询字符串参数
的值
你得到一个查询字符串参数,如:
1 | string id = Request.QueryString["id"]; |
如果你的
1 2 3 4 5 6 | int realId = 0; string id = Request.QueryString["id"]; if (Int32.TryParse(id, out realId)) { //do something with realId } |
Uri 已经提供了搜索方法,不需要自己做:
1 2 | Uri uri = new Uri("http://localhost:49496/Activated.aspx?id=2"); Console.WriteLine(uri.Query.Split('=')[1]); |
请注意,在您的实际(生产)代码中,您可能希望包含一些错误检查以验证查询部分是否包含 "id"。