Всех приветствую! Недавно выкладывал видео уроки по ASP MVC 3 от Гайдара Магданурова. Сегодня представляю вам синтаксис Razor. Эта табличка новичкам очень пригодиться.

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.
Mixing expressions and text
Hello @title. @name.
Hello <%: title %>. <%: name %>.