“@ {some expression;}是什么意思?

时间:2012-02-23 00:38:55

标签: asp.net

我被建议(由一个我现在无法联系的人来询问这个)使用查询字符串技巧来防止在我调试时缓存样式表。受访者表示这可以解决问题:

@{ 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;}”表示什么?

3 个答案:

答案 0 :(得分:3)

它是Razor,它是asp.net的一个较新的渲染引擎。它与你的&lt; %%&gt;完全相同代码块。

答案 1 :(得分:1)

它不是表达式,它是Razor syntax中的代码块(一个或多个声明和语句的集合)。

答案 2 :(得分:1)

它不适合你的原因是你没有使用剃须刀引擎。 @通过实现Razor引擎替换了对asp.net中<% %>的需求,最值得注意的是通过mvc3。