I came across this cool syntax table that can come in quite handy when one is working with Razor in ASP.NET:
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 %>.
|
Of coarse this is only like a basic set, but here is a link with a full reference to Razor.
No comments:
Post a Comment