最近看了一些相关教程,现在我明白如何 打入例如这样的url: localhost/yousite/d1.aspx
即转入 localhost/yousite/xx.aspx?ID=1  这个我看教程实现了 可是我刚刚接触这个 不明白的是 象有些网站那样 鼠标停留在超链接上的时候 浏览器下面显示的就是重写后的url 这个怎么实现呢? 还有就是 点击这个超链接 转入该页面时候 浏览器地址栏也应该是重写后的url 这个怎么实现呢?我现在鼠标停留在 比如localhost/yousite/xx.aspx?ID=1 这个超链接上时候 我想再浏览器下面就显示的是 重写后的url :localhost/yousite/d1.aspx ,而点击它进入该页面后 浏览器地址栏里也应该是localhost/yousite/d1.aspx 这个怎么实现的呢?十分感谢热心朋友的解答

解决方案 »

  1.   

    在梆定数据时,把链接用梆定方法做就可以了。
    如:
    <a href="localhost/yousite/xx.aspx?ID=<%#ID%>">test</a>
    重写一个梆定链接:
    <a href="localhost/yousite/d<%#ID%>.aspx">test</a>
      

  2.   

    http://time-is-life.cnblogs.com/articles/292861.html
      

  3.   

    楼上发的是什么东西? 
    是不是我说的那种情况都是 下面这样作的??在梆定数据时,把链接用梆定方法做就可以了。
    如:
    <a href="localhost/yousite/xx.aspx?ID=<%#ID%>">test</a>
    重写一个梆定链接:
    <a href="localhost/yousite/d<%#ID%>.aspx">test</a>
      

  4.   

    我就是看了微软的教程 urlrewriter 的
      

  5.   

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/urlrewriting.asp
      

  6.   

    好象用带Link的控件难实现
    我这位方法是用一个Button来代替,可以实现,你看看,大家多提意见
    页面:
    <style>
    .LinkBtn { COLOR: #0000ff; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline 
    ;Border-Style:None ;CURSOR: hand
    }
    </style>
    <script language="javascript" for="Button1" event="onmouseover">
    window.status="localhost/yousite/d1.aspx";
    </script>
    <script language="javascript" for="Button1" event="onmouseout">
    window.status="None";
    </script>

    <asp:Button CssClass="LinkBtn" id="Button1" runat="server" Text="Button" ></asp:Button>
    后台:
    private void Button1_Click(object sender, System.EventArgs e)
    {
    Response.Redirect("Utils1.aspx");
    }
      

  7.   

    或者将前端script注释掉。在后台加载,这样你自定义URL字符串方便点:
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    string Url="localhost/yousite/d1.aspx";
    string strScript ="<script language='javascript' for='Button1' event='onmouseover'>";
    strScript +="window.status='"+Url+"';</script>";
    strScript +="<script language='javascript' for='Button1' event='onmouseout'>";
    strScript +="window.status='None';</script>";
    Page.RegisterStartupScript("WriteUrl",strScript);
    }
      

  8.   

    正如 bgu(横渡) 所说,你在生成页面的时候就应该生成需要伪装成的url,然后这个url在提交到服务器的时候才被你reWrite。
      

  9.   

    有个办法,重写Page的Render()using System.IO;
    using System.Text.RegularExpressions;protected override void Render(HtmlTextWriter writer)
    {            
    TextWriter tempWriter = new StringWriter();
    base.Render(new HtmlTextWriter(tempWriter));            
    string str=tempWriter.ToString(); reg= new Regex(@"href=([\'|\"])?[^>]*xx.aspx?ID=(\d)([\'|\"])?",RegexOptions.IgnoreCase);
    str = reg.Replace(str,@"href=$1d$2$3.aspx"); writer.Write(str);            
    }
      

  10.   

    难道每个连接都要做一下 变动吗 怎么总觉得这样很麻烦 可是没有别的办法了吗?
    很多网站 我鼠标放到超链接上都不是真实地址 而且超链接很多啊 我就是想弄明白这个是怎么一回事。。郁闷
    ============================
    我想页面再多的url也就两种情况吧,
    静态的url,动态的url
    对于静态的,没话说,自己改,这个不会太多吧,
    而动态的就更好办了,都是程序的事情了