Runat server 或 ResolveUrl :哪个更有效/更可取,为什么?

Runat server or ResolveUrl : Which one is more efficient / preferable and why?

我有两个选项可以让图像在 ASP.NET 的母版页中在根目录和子目录中正常工作。这两种方式对我来说都很好,但我需要知道从带宽的角度来看哪个选项更可取。这两者有很大区别吗?

下面是我使用 "runat=""server"" 选项的第一个选项:

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

下面是第二个选项,其中我使用 "ResolveUrl("~")" 选项:

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

"Runat server" 和 ResolveURL 是两个截然不同的东西,并且没有那种关系。

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

ResolveURL 是 returns 资源相对路径的函数。 ~ 然后告诉它从网站的 "root" 看。这是有用的,因为您的控件树(页面 -> 用户控件 -> 用户控件)可以很快变得很深,但通常会使用来自单个文件夹的资源,例如图形,因此如果您不使路径相对于网站的根目录,您很可能最终会出现损坏的链接。

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