/css/style.css
而不是css/style.css
,因此asp.net不会修复网址。我发现<link>
{{1}当<meta>
标记头部时,<title>
将添加为服务器控件,因此这些服务器控件将自动修复当前引用问题。
!!!但是,runat="server"
被忽略,其中一个解决方案是<script>
。但是当你有一个主页附加到母版页时它不起作用,asp.net canot在App_Themes中添加样式表当它包含这样的<%= ResolveClientUrl('~/js/jquery.js') %>
表达式时,asp.net将抛出异常。
所以似乎最好的解决方案是使用<% %>
。
另一个重要的发现是,当您在主<ScriptManager>
头中有<ContentPlaceHolder>
时,使用此母版页的子页面runat=server
内的样式表将不会被视为服务器控件。所以在<Content>
子网页中,您必须使用<Content>
来处理网址修复。
ORINGIAL:
我在IIS 7 Express上运行asp.net 4.0。我使用默认值<%= ResolveClientUrl%>
将“MarketList / {type}”路由到“〜/ MarketList.aspx”。 URL“localhost:4888 / MarketList”运行良好,我可以接收默认值“0”。
但我发现“/”会搞乱“Main.master”母版页中定义的样式表和javascript引用。 “Main.master”位于根目录“MarketList.aspx”。 “Main.master”中的样式表定义为new {type = 0}
。 “css”文件夹也位于根级别。当我通过“/ MarketList”访问时,它运行良好。但是,“/ MarketList / 1”将值“1”赋予css/style.css
。页面中样式表的URL变为“../css/style.css”,它指向“/MarketList/css/style.css”。这显然不存在。
所以,我决定使用“ - ”分割这些部分,我将“market-list- {type}”路由与上面相同的设置。但是,我发现我无法访问我认为是“localhost:4888 / market-list-”的默认路由URL。 “localhost:4888 / market-list”也不起作用。只有“/ market-list-0”才有效。
有人可以帮助我吗?