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); |
错误提示:
索引和长度必须引用字符串中的位置。
参数名称:长度
那么,它有什么问题呢?!
- num2 是要占用多少个字符。不是最后一个索引。
如果你只是想隔离参数:
1
|
string ID = uri.Substring(num1);
|
(David Pilkington 对失败原因的解释是正确的。)
- … 或 num1+1 假设他不想要 =,并且还假设永远不会有另一个参数…并且还假设总会有至少一个参数。
问题在于第二个参数是您要查找的子字符串的长度,并且 num2 太大而无法进行操作
将第二个参数改为uri.Length – num1
另一种方法是不包含第二个参数。在这种情况下,从您提供的索引中获取子字符串,直到字符串结尾。
在这里,阅读有关该方法的 MSDN 文档,您会发现哪里出错了
String.Substring 方法 (Int32, Int32)
你最好的选择是
1
|
uri.Substring(uri.IndexOf(‘=’)+1);
|
子字符串不是执行您正在尝试执行的操作的方法…这是获取查询字符串参数 id.
的值
你得到一个查询字符串参数,如:
1
|
string id = Request.QueryString[“id”];
|
如果你的 id 实际上是一个 int,你可以这样做:
1
2 3 4 5 6 |
int realId = 0;
string id = Request.QueryString[“id”]; if (Int32.TryParse(id, out realId)) { //do something with realId } |
- 非常感谢.. 最佳答案 <3 :)
- @F505,同意。这就是为什么我赞成这个答案(它比我的好),也许你应该在将其标记为你的答案之前做同样的事情?
Uri 已经提供了搜索方法,不需要自己做:
1
2 |
Uri uri = new Uri(“http://localhost:49496/Activated.aspx?id=2”);
Console.WriteLine(uri.Query.Split(‘=’)[1]); |
请注意,在您的实际(生产)代码中,您可能希望包含一些错误检查以验证查询部分是否包含 “id”。
来源:https://www.codenong.com/20153961/