每当我在链接的href属性上放置一个内联标记时,它就会以某种方式自动编码。这是ASP.NET的默认行为吗?如何使用代码动态设置Href属性?这是MVC btw。
尝试过这样的事情
<link href="<%: Link.Content.Jquery_css %>" rel="stylesheet" type="text/css" />
渲染了这个(没有改变)
<link href="<%: Link.Content.Jquery_css %>" rel="stylesheet" type="text/css" />
和这个
<link href="<%= Link.Content.Jquery_css %> rel="stylesheet" type="text/css" />
产生了这个(我不记得确切的数字,但似乎括号百分比等于被编码为链接格式)
<link href="/View/Shared%25Link.Content.Jquery_css%25" %>" rel="stylesheet" type="text/css" />
Link.Content.Jquery_css
是一个强类型字符串,包含使用T4MVC创建的链接。
添加信息:我在.NET 4中使用ASP.NET MVC 2并在Firefox中进行测试。
答案 0 :(得分:5)
我在母版页中遇到了同样的问题。 (它不会发生在单个页面中。)我发现从head标签中删除“runat = server”修复了问题。
答案 1 :(得分:4)
由于您使用的标记(<%: %>
),它会自动编码。如果您不希望对URL进行编码,请使用以下命令:
<link href="<%= Link.Content.Jquery_css %>" rel="stylesheet" type="text/css" />
答案 2 :(得分:3)
将“:”更改为“=”并删除自动编码
答案 3 :(得分:1)
您的视图无法访问Link.Content.Jquery_css属性。 ASP.NET没有任何错误。
将该行移到页面正文中,您将看到编译错误。
答案 4 :(得分:1)
你可以这样做:
<head>
<style type="text/css">
@import "<%= ResolveUrl("~/content/styles.css") %>";
@import "<%= ResolveUrl("~/content/print.css") %>" print;
</style>
</head>