【问题标题】:Include .css files in asp.net在 asp.net 中包含 .css 文件
【发布时间】:2011-03-19 07:47:52
【问题描述】:

由于 virturl 目录名不固定,我在下面写了代码,现在将 .css 文件包含在 .aspx 页面中。

<link rel="Stylesheet" href="<%= ResolveUrl("~/Css/xxx.css") %>" type="text/css" />

问题是,当我在标签中使用“ResolveUrl”时,IDE 总是在抱怨所有 CSS 类都是未定义的。

有没有更好的方法来定义 .css 文件包括?

【问题讨论】:

    标签: asp.net css visual-studio


    【解决方案1】:

    IDE 不会知道您正在包含该 css 文件,因为它会在运行时生成,而不是在它之前生成。

    如果您需要智能感应,请手动放置并稍后在需要时更改。

    【讨论】:

      【解决方案2】:

      您可以在&lt;% if (false) { %&gt; 中静态包含文件。

      这样,Visual Studio 的 IntelliSense 会看到文件,但 ASP.Net 运行时不会。
      (并且if (false) 块应该被编译器优化掉,所以性能损失应该为零)

      【讨论】:

      • 你打字比我快!这是 IMO 的最佳解决方案。您可以按照现在的方式继续引用文件,然后使用物理路径复制所有引用,并将重复项包装在 if(false) { }
      【解决方案3】:

      您可以使用 html 服务器控件(注意 runat="server")来执行此操作,如下所示:

      <link rel="stylesheet" runat="server" media="screen" href="~/css/styles.css" />
      

      这仍将为您解析虚拟目录。它还应该支持 css intellisense 和 aspx 页面上的警告。

      【讨论】:

      • 波浪号 (~) URL 语法需要 runat="server"。
      • 如果在head 标签上设置了波浪号,则波浪号适用于没有runat="server"link 标签,即&lt;head runat="server"&gt;。如果没有在head 标签上设置它,并且只在link 标签上设置,我实际上无法让它工作。
      猜你喜欢
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 2013-04-10
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      相关资源
      最近更新 更多