Runat服务器或ResolveUrl:哪一个更有效/更可取?为什么?

时间:2015-03-18 06:43:22

标签: master-pages

我有两个选项可以让这些图像在放在ASP.NET中的母版页中时在根目录和子目录中正常工作。这两种方式对我来说都很好但我需要知道从带宽角度来看哪个选项更合适。这两者之间是否存在重大差异?

以下是我使用" runat =""服务器""的第一个选项。选项:

  <img src="images/twitter-bird.png" alt="" class="image_left1" >

以下是我使用&#34; ResolveUrl(&#34;〜&#34;)&#34;的第二个选项。选项:

 <img src="<%= ResolveUrl("~") %>images/twitter-bird.png" alt="" class="image_left1" >

1 个答案:

答案 0 :(得分:0)

“Runat服务器”和ResolveURL是两个非常不同的东西,并没有那种方式相关。

Runat告诉asp.net使控件成为服务器端控件,然后您可以从后面的代码中访问它以执行各种操作。这意味着您可以使用控件,向其添加内容,添加新的用户控件或任何内容。 这基本上是asp.net中webforms的核心。

ResolveURL是一个返回资源相对路径的函数。 〜然后告诉它从网站的“根”看。这是可用的,因为您的控制树(页面 - &gt; usercontrols - &gt; usercontrols)可以很快变得非常深,但经常使用来自单个文件夹的图形等资源,所以如果您不使网站的根目录相对于您的路径,你很可能最终会破坏链接。

在您的示例中,有多种方法可以执行此操作,具体取决于具体情况。 如果它是一个永远不会改变的静态图形 - 它也可以用你的相对路径进入你的CSS然后你不必担心。
如果它是动态图像 - 意味着它可以根据上下文改变,那么我将图像html标记变为asp:image(runat服务器),然后在代码隐藏中使用ResolveURL() <设置图像URL / p>