ASP.NET MVC内联标记不能与<link href =“”/>一起使用

时间:2010-11-23 15:07:21

标签: asp.net

每当我在链接的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中进行测试。

5 个答案:

答案 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>