ASP.NET资源参考最佳实践

时间:2008-12-31 04:23:48

标签: asp.net

我对ASP.NET相对较新,并且想知道是否有人可以阐明何时应该使用相对引用(例如../images/banner_tinga.jpg)与波浪号(例如〜/ images / banner_tinga)。 JPG格式)。根据具体情况,您可以使用其中任何一个完成相同的目标。每种机制的优缺点是什么?相对引用的一个参数似乎是Visual Studio的设计时间不喜欢代字号引用的资源。每当我引用一个css文件,说明为什么它无法找到它。

此致 javacavaj

3 个答案:

答案 0 :(得分:4)

代字号仅适用于具有runat =“server”属性的控件,并且不适用于标准HTML控件。所以真的没有普遍的选择。如果你想使用代字号和HTML控件,你必须将它们标记为runat =“server”,就像这样

<img src="~/images/myimage.png" runat="server">

但这似乎不是一个好习惯,因为它会被添加到视图状态。但是,你也可以这样做

<img src="~/images/myimage.png" runat="server" EnableViewState="False">

那么选择就变得非常普遍。

现在回答你原来的问题:

我认为最好使用'〜'代字号,因为它为您提供了一个参考点 - 您网站的根目录。如果更改网页的文件夹并将其带到不同的级别(层次结构中更高或更低),则相对路径方案“../”将失败

希望这会有所帮助。

要访问CSS文件,请执行此操作

<link href="<%= VirtualPathUtility.ToAbsolute("~/css/style.css/") %>" type="text/css">

答案 1 :(得分:3)

嗯......我完全不同意@StevenMcD。代字号始终引用您正在开发的Web应用程序的根目录,而相对路径表示法则基于Web应用程序中的当前位置。我认为从长远来看,如果你重新组织或重新组织网页的文件位置,波形符号将使你更容易重构,因为你总是知道基本路径(〜)指的是根的路径Web应用程序。如果使用“../”符号,则无法保证。

另一个注意事项......在ASP.NET中使用用户控件和主页时,代字号(〜)表示法非常方便。当您将用户控件放入webform时,该webform可以嵌套在应用程序文件结构的任何部分中。相对路径根本无法保证在该场景中起作用。通过使用波浪符号,所有路径都可以用代码编写,并且可以工作,因为它们基于Web应用程序的根目录。希望这会有所帮助。

顺便说一句,在ASP.NET中不以任何方式使用〜。

更新:正如Cyril所提到的,〜只有在使用ASP.NET控件时才可用。纯HTML元素无法使用它。

答案 2 :(得分:0)

我个人现在只使用相对引用并避免使用波浪号。这可能会导致进一步的问题。虽然我无法显示任何与之相关的参考资料,但我记得听过/读过某些地方已经弃用了参考文献