我被建议(由一个我现在无法联系的人来询问这个)使用查询字符串技巧来防止在我调试时缓存样式表。受访者表示这可以解决问题:
@{ var currentDate = DateTime.Now; }
<link href="@Url.Content("~/Styles/Site.css?" + currentDate)" rel="stylesheet" type="text/css" />
我明白为什么,但表达式@ {var currentDate = DateTime.Now;我只是在运行时解析为页面中的文字值。完整的代码是:
<head runat="server">
<title></title>
@{ var currentDate = DateTime.Now; }
<link href="@Url.Content("~/Styles/Site.css?" + currentDate)" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
</head>
语法“@ {}”对我来说是新的。我在任何我看过的文档中都没有看到它的引用。根据用法它似乎是内联脚本,但它在运行时没有被视为那个,我甚至不确定它是否是Active Server Page语法(或PHP?)。
有什么作用:
<% var currentDate = DateTime.Now; %>
<link href="~/Styles/Site.css?<%= currentDate%>" rel="stylesheet" type="text/css" />
好的,但是,“@ {&lt; some expression&gt;}”表示什么?
答案 0 :(得分:3)
它是Razor,它是asp.net的一个较新的渲染引擎。它与你的&lt; %%&gt;完全相同代码块。
答案 1 :(得分:1)
它不是表达式,它是Razor syntax中的代码块(一个或多个声明和语句的集合)。
答案 2 :(得分:1)
它不适合你的原因是你没有使用剃须刀引擎。 @
通过实现Razor引擎替换了对asp.net中<% %>
的需求,最值得注意的是通过mvc3。