我的程序要求和环境
如我网站目录下有文件
default.aspx
default.aspx2
现在要求是当用户输入如name.aspx的时候程序到数据库判断这个name.aspx相应的ID
如他的ID为2那么改写为default.aspx?id=2
以下是我的代码
--------------------------------------
protected void Application_BeginRequest(Object sender, EventArgs e)
{
    //如传进来的地址是name.aspx
    String oldurl = Request.Path;   //得到当前URL
    Int32 pathLen=Request.Path.Length;  //得到当前URL长度
    Int32 dirLen=Request.Path.LastIndexOf("/") + 1;
    String path = Request.Path.Substring(0,dirLen); //得当前前URL的目录路径
    String fileanme = Request.Path.Substring(dirLen,pathLen-dirLen);  //得到原始文件名
    if (true)   //还有这里要怎么判断我的程序里面的当前这个目录是否已经有这个文件,如果有 false
    {
        //读取数据库 得到当前原始文件名如 name.aspx的记录相关信息 如id=2        
        String ID = "2";            
        HttpContext.Current.RewritePath("default.aspx?id=" + ID);             
    }
}
------------------------------------------
现在问题是怎么判断我的程序是否有传进来的值
因为如打下default2.aspx的时候还是会跑到
default.aspx?id=XX 这样
但我不要这样,因为已经有default2.aspx了
还有上面会不会有什么地方要改进的

解决方案 »

  1.   

    孟子的东西都是好东西~
    这是url重置么????
      

  2.   

    protected void Application_BeginRequest( object sender, EventArgs e )
      {
        string Filepath = HttpContext.Current.Request.PhysicalPath;
        HttpContext.Current.Response.Write(System.IO.File.Exists(Filepath));
        if (System.IO.File.Exists(Filepath))
        {
         // HttpContext.Current.RewritePath("~/Default14.aspx");
          //如果存在请求的页面文件,就直接执行
        }
        else
        {
          HttpContext.Current.RewritePath("~/DataListCheckAll.aspx");
        }
      }