使用asp.net url路由时引用css文件的建议解决方案是什么?

时间:2011-08-12 16:25:25

标签: asp.net css url-routing

我正在使用url路由,我有一个在目标页面上引用的样式表(在母版页内容模板中):

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
    <link href="css/actionmenu.css" rel="stylesheet" type="text/css" />
</asp:Content>

当页面被要求www.mysite.com/mypage时,它是好的。但是,如果请求页面为www.mysite.com/mypage/anotherpage - 对样式表的引用会中断。我试过了:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
        <link href="~/css/actionmenu.css" rel="stylesheet" type="text/css" runat="server"/>
    </asp:Content>

并没有帮助。

我通常的解决方案是在代码隐藏中加载样式表 - 但是,我还缺少另一种解决方案吗?

3 个答案:

答案 0 :(得分:2)

我相信您可以使用 Server.ResolveClientUrl() 在ASP.NET中处理此问题:

href="<%=Server.ResolveClientUrl("~/css/actionmenu.css")%>"

在ASP.NET MVC中,您可以使用 Url.Content() 方法:

href = <%=Url.Content("~/css/actionmenu.css")%>"

如果您正在寻找有关这些选项的其他信息,请查看以下链接:

<强> Different Approaches for Resolving URLs | A Programmer's Blog

答案 1 :(得分:0)

试试这个。

<link href='<%= ResolveUrl("~/css/actionmenu.css") %>' rel="stylesheet" type="text/css" media="all" />

答案 2 :(得分:0)

是否有任何理由不能使用绝对引用 - 即

<link href="/css/actionmenu.css" rel="stylesheet" type="text/css" />