@{
int x = 123;
string y = "because.";
}
<span>@model.Message</span>
<span>
@Html.Raw(model.Message)
</span>
@foreach(var item in items) {
<span>@item.Prop</span>
}
@if (foo) {
<text>Plain Text</text>
}
@if (foo) {
@:Plain Text is @bar
}
Hi [email protected]
Razor recognizes basic email format and is smart enough not to treat the @
as a code delimiter.
<span>ISBN@(isbnNumber)</span>
In this case, we need to be explicit about the expression by using parentheses.
<span>
In Razor, you use the
@@foo to display the value
of foo
</span>
@@
renders a single @
in the response.
@*
This is a server side
multiline comment
*@
@(MyClass.MyMethod<AType>())
Use parentheses to be explicit about what the expression is.
@{
Func<dynamic, object> b =
@<strong>@item</strong>;
}
@b("Bold this")
Generates a Func<T, HelperResult>
that you can call from within Razor. See
[this post](http://haacked.com/archive/2011/02/27/templated-razor-
delegates.aspx) for more details.
Hello @title. @name.
NEW IN RAZOR v2.0/ASP.NET MVC 4
<div class="@className"></div>
When className = null
<div></div>
When className = ""
<div class=""></div>
When className = "my-class"
<div class="my-class"></div>
<div class="@className foo bar"></div>
When className
= null
<div class="foo bar"></div>
Notice the leading space in front of foo
is removed.
When className
= my-class
<div class="my-class foo bar"></div>
data-*
attributes are always rendered.
<div data-x="@xpos"></div>
When xpos = null or ""
<div data-x=""></div>
When xpos = "42"
<div data-x="42"></div>
<input type="checkbox checked="@isChecked" />
Examples
When isChecked
= true
<input type="checkbox" checked="checked" />
When isChecked
= false
<input type="checkbox" />
<script src="~/myscript.js"></script>
Examples
When the app is at /
<script src="/myscript.js"></script>
When running in a virtual application named MyApp
<script src="/MyApp/myscript.js"></script>
References
Very useful. Thank You. :)