Bookmark and Share BitCoin Donate: 1Kdd2Es6nHrxG1JFWAQYzX5hwiTXu9aBBA

Quick reference to Razor syntax

Syntax/SampleRazorWeb 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>
Expression (Unencoded)
@Html.Raw(model.Message) </span>
<span><%= model.Message %></span>
Combining Text and markup
@foreach(var item in items) {


<% 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
Razor recognizes basic email format and is smart enough not to treat the @ as a code delimiter
Explicit Expression
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
Use parentheses to be explicit about what the expression is.
Creating a Razor Delegate

  Func<dynamic, object> b = 



@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 %>.

Taken from Phil Haack