C# Razor Syntax Quick Reference

Syntax/Sample Razor Web Forms Equivalent (or remarks)
Code Block @{ int x = 123; string y = “because.”; } <% int x = 123; string y = “because.”; %>
Expression (Html Encoded) <span>@model.Message</span> <span><%: model.Message %></span>
Expression (Unencoded) <span> @Html.Raw(model.Message) </span> <span><%= model.Message %></span>
Combining Text and markup @foreach(var item in items) { <span>@item.Prop</span> } <% foreach(var item in items) { %> <span><%: item.Prop %></span> <% } %>
Mixing code and Plain text if (foo) { <text>Plain Text</text> } <% if (foo) { %> Plain Text <% } %>
Mixing code and plain text (alternate) @if (foo) { @: Plain Text is @bar } Same as above
Email Addresses Hi philha@example.com Razor recognizes basic email format and is smart enough not to treat the @ as a code delimiter
Explicit Expression <span>ISBN@(isbnNumber)</span> In this case, we need to be explicit about the expression by using parentheses.
Escaping the @ sign <span>In Razor, you use the @@foo to display the value of foo</span> @@ renders a single @ in the response.
Server side Comment @* This is a server side multiline comment *@ <%– This is a server side multiline comment –%>
Calling generic method @(MyClass.MyMethod<AType>()) Use parentheses to be explicit about what the expression is.
Creating a Razor Delegate @{ Func<dynamic, object> b = @<strong>@item</strong>; } @b(“Bold this”) Generates a Func<T, HelperResult> that you can call from within Razor. See?this blog post?for more details.
Mixing expressions and text Hello @title. @name. Hello <%: title %>. <%: name %>.

note : http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx