zoukankan      html  css  js  c++  java
  • .NET Framework 4下的ResolveUrl和ResolveClientUrl的改变

    想必大家都 ResolveUrl和ResolveClientUrl的用途吧。这里就是不介绍这些,如没有使用过请点击这里

    在MSDN中,.NET Framework 4和.NET Framework 3.5下的ResolveUrl和ResolveClientUrl的相同,但是真的相同吗?

    答案当然是不相同,如果相同也就没有这篇随笔了。

    以下代码:

     

    代码
            private void TestUrl()
            {
                
              relativeUrl 
    = @"~\11\22.aspx";
              ParseUrlResult(relativeUrl); 

              relativeUrl 
    = @"~/11/22.aspx";
              ParseUrlResult(relativeUrl); 

              relativeUrl 
    = @"~\11\22.aspx?1=1";
              ParseUrlResult(relativeUrl); 

              relativeUrl 
    = @"~\11\22.aspx?id=http://contoso.com";
              ParseUrlResult(relativeUrl); 

              relativeUrl 
    = @"~/11/22.aspx?id=http://contoso.com";
              ParseUrlResult(relativeUrl); 

              relativeUrl 
    = @"..\..\11\22.aspx?";
              ParseUrlResult(relativeUrl); 

              relativeUrl 
    = @"..\..\..\11\22.aspx?";
              ParseUrlResult(relativeUrl); 

              relativeUrl 
    = @"http://www.cnblogs.com/../11/22.aspx?";
              ParseUrlResult(relativeUrl); 

              relativeUrl 
    = @"http://contoso.com";
              ParseUrlResult(relativeUrl); 

            } 

            
    private void ParseUrlResult(string relativeUrl)
            {
                Response.Write(
    string.Format("Raw url:{0}", relativeUrl));
                Response.Write(
    "<br/>");
                
    try
                {
                    Response.Write(
    string.Format("ResolveUrl:{0}"this.ResolveUrl(relativeUrl)));
                }
                
    catch (Exception ex)
                {
                    Response.Write(
    string.Format("<font color='red'>ResolveUrl:{0}</font>", ex.Message));
                }
                Response.Write(
    "<br/>");
                
    try
                {
                    Response.Write(
    string.Format("ResolveClientUrl:{0}"this.ResolveClientUrl(relativeUrl)));
                }
                
    catch (Exception ex)
                {
                    Response.Write(
    string.Format("<font color='red'>ResolveClientUrl:{0}</font>", ex.Message));
                }
                Response.Write(
    "<br/>");
                Response.Write(
    "<br/>");
            } 

     

     

    以下是.NET Framework 4 下的结果:                                                         以下是.NET Framework 3.5 下的结果:

    image  image

    在对比下,就发了不同。明显在.NET Framework 4下,ResolveClientUrl可以传入含绝对地址的参数了。ResolveUrl也可以传入含绝对地址的参数了,不过区分正反斜杠。

    明显程序改了,但MSDN只多了个.NET Framework 4的字样,具体内容没改。

    qishichang

  • 相关阅读:
    小知识点
    异常关机后idea的注入不能使用
    day42_mysql 数据库操作 数据库的约束
    day41_mysql安装与卸载 mysql配置 SQL语句 DDL:操作数据库,表 DML:增删改表中的记录 DQL:查询表中的记录 DCL:管理用户与授权
    day39_ECMAScript BOM DOM
    day38_JS
    day35_HTML inpot标签 form表单
    day33_Stream(JDK1.8后的接口,本身不是函数式接口)
    day32_ 优化文件上传及接收 函数式接口 自定义函数接口 函数式编程 常用函数式接口 Stream流
    day31_网络通信三要素 TCP Socket关键字 ServerSocket
  • 原文地址:https://www.cnblogs.com/qishichang/p/1748495.html
Copyright © 2011-2022 走看看