这是用notepad(记事本)写的代码 using System; using System.IO; public class Test { public static void Main(string[] arg) { if(arg.Length<1) { return; } string url=arg[0]; int begin=url.LastIndexOf("/")+1; Console.WriteLine(begin); int end=url.LastIndexOf("?")-url.LastIndexOf("/")-1; Console.WriteLine(end); Console.WriteLine(url.Substring(begin,end)); }} 用来截获字符子串,参数在arg里面,运行正常。 下面是在asp.net里面写的语句 private void Page_Load( object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 string url=Request.Url.ToString().Trim(); if(url.Length>0) { int begin=url.LastIndexOf("/")+1; string compUrl="bookdetail.aspx"; if(url.Substring(begin,15)==compUrl) { this.DataList1.RepeatDirection=RepeatDirection.Horizontal; this.DataList1.RepeatColumns=20; } } DataList1.DataSource=new guanli.Component_TuShu().GetTypeList();; DataList1.DataBind(); } 这是想实现动态改变我们的Datalist的外观,当请求的页面不同时,它的显示也是不同的。 但是,它在运行时提示如下错误: 异常详细信息: System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。参数名:length源错误: 行 28 : // int end=url.LastIndexOf("?")-url.LastIndexOf("/")-1; 行 29 : string compUrl = " bookdetail.aspx " ;行 30 : if (url.Substring(begin, 15 ) == compUrl)行 31 : { 行 32: this.DataList1.RepeatDirection=RepeatDirection.Horizontal; 源文件: f:\myweb\myprg\typelist.ascx.cs 行: 30 实在是琢磨不透。能给点建议不? 转载于:https://www.cnblogs.com/3zfp/archive/2004/11/09/61935.html