我正在使用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>
并没有帮助。
我通常的解决方案是在代码隐藏中加载样式表 - 但是,我还缺少另一种解决方案吗?
答案 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" />