Joh*_*zen 6 asp.net asp.net-mvc asp.net-mvc-2
我刚刚开始试用T4MVC,我喜欢消除魔法字符串的想法.
但是,当我尝试在我的样式表的母版页上使用它时,我得到了这个:
<link href="<%: Links.Content.site_css %>" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
这样的结果:
<link href="<%: Links.Content.site_css %>" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
而这些渲染正确:
<link href="<%: Url.Content("~/Content/Site.css") %>" rel="stylesheet" type="text/css" />
<link href="<%: Links.Content.site_css + "" %>" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
看来,只要我在代码段中有双引号,它就可以工作.但是当我把其他任何东西放在那里时,它逃脱了领先的"不到".
这是我可以关闭的东西吗?这是一个错误吗?
这并没有发生了<script src="..." ... />,也不会发生了<a href="...">.
最小的情况:
<link href="<%: string.Empty %>" />
Run Code Online (Sandbox Code Playgroud)
VS
<link href="<%: "" %>" />
Run Code Online (Sandbox Code Playgroud)
我有一个解决方法,我已经实现了一个HtmlHelper扩展,以便我可以这样做:
<%: Html.StyleSheet(Links.Content.site_css) %>
Run Code Online (Sandbox Code Playgroud)
我更喜欢对intellisens的支持,所以我实际上会坚持这一点.现在,我只是想解决这个问题.
对我来说这看起来像是一个错误,编译后的输出是:
private global::System.Web.UI.HtmlControls.HtmlLink @__BuildControl__control5() {
global::System.Web.UI.HtmlControls.HtmlLink @__ctrl;
@__ctrl = new global::System.Web.UI.HtmlControls.HtmlLink();
@__ctrl.Href = "<%: String.Empty %>";
((System.Web.UI.IAttributeAccessor)(@__ctrl)).SetAttribute("rel", "stylesheet");
((System.Web.UI.IAttributeAccessor)(@__ctrl)).SetAttribute("type", "text/css");
return @__ctrl;
}
Run Code Online (Sandbox Code Playgroud)
这似乎只发生在控件位于head runat="server"
| 归档时间: |
|
| 查看次数: |
151 次 |
| 最近记录: |