想必大家都 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 下的结果:

.NET Framework 4下的ResolveUrl和ResolveClientUrl的改变  .NET Framework 4下的ResolveUrl和ResolveClientUrl的改变

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

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

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-28
  • 2022-12-23
  • 2021-10-21
  • 2022-01-04
猜你喜欢
  • 2021-09-22
  • 2021-08-04
  • 2021-07-30
  • 2021-07-12
  • 2021-06-06
相关资源
相似解决方案