C# com Razor
Victor Cavalcante
@vcavalcante
vcavalcante@lambda3.com.br
VICTOR CAVALCANTE
- Desenvolvedor Web
- Microsoft MVP de ASP.NET
- vcavalcante@lambda3.com.br
- @vcavalcante
O que é Razor?
Razor é uma síntaxe de marcação para incluir código C# em páginas web.
A síntaxe do Razor é composta por marcações Razor, C# e HTML.
O Básico
<p>Olá Mundo</p>
HTML
<p>@NomeDoUsuario</p>
Exibindo Variáveis
<p>Olá Mundo @NomeDoUsuario!</p>
Exibindo Variáveis com HTML
<p>Olá Mundo vcavalcante!</p>
<p>Olá Mundo @NomeDoUsuario@lambda3.com.br!</p>
E se?
<p>Olá Mundo vcalcante@lambda3.com.br!</p>
<p>Olá Mundo @NomeDoUsuario@lambda3.com.br!</p>
E se?
<p>Olá Mundo @NomeDoUsuario@@lambda3.com.br!</p>
<p>Olá Mundo vcalcante@lambda3.com.br!</p>
<p>Olá Mundo @NomeDoUsuarioComTextoJunto</p>
E se?
<p>Olá Mundo vcavalcanteComTextoJunto</p>
<p>Olá Mundo @NomeDoUsuarioComTextoJunto</p>
E se?
<p>Olá Mundo @(NomeDoUsuario)ComTextoJunto!</p>
<p>Olá Mundo vcavalcanteComTextoJunto!</p>
Explicit Razor
Qual o resultado?
<p>O dia ontem foi: @DateTime.Now - TimeSpan.FromDays(1)</p>
Explicit Razor
Qual o resultado?
<p>O dia de ontem foi: @DateTime.Now - TimeSpan.FromDays(1)</p>
O dia de ontem foi: 2/22/17 3:44:51 PM - TimeSpan.FromDays(1)
Explicit Razor
Qual o resultado?
<p>O dia de ontem foi: @(DateTime.Now - TimeSpan.FromDays(1))</p>
O dia de ontem foi: 2/21/17 3:56:23 PM
Explicit Razor
@{
var conta = 34 +5;
}
<p>a soma é @conta</p>
A soma é 39
O que mais posso fazer?
@{
var inCSharp = true;
<p>No C# temos HTML @inCSharp</p>
}
No C# temos HTML True
For, while, do while
@for (var i = 0; i < people.Length; i++)
{
var person = people[i];
<text>Name: @person.Name</text>
}
@{ var i = 0; }
@do
{
var person = people[i];
<p>Name: @person.Name</p>
<p>Age: @person.Age</p>
i++;
} while (i < people.Length);
if
@if (value % 2 == 0)
{
<p>The value was even</p>
}
If, else e else if
@if (value % 2 == 0)
{
<p>The value was even</p>
}
else if (value >= 1337)
{
<p>The value is large.</p>
}
else
{
<p>The value was not large and is odd.</p>
}
Switch
@switch (value)
{
case 1:
<p>The value is 1!</p>
break;
case 1337:
<p>Your number is 1337!</p>
break;
default:
<p>Your number was not 1 or 1337.</p>
break;
}
Tag Helper
@Html.Label("FirstName", "First Name:", new {@class="caption"})
<label class="caption" for="FirstName">First Name</label>
<label asp-for="FirstName" class="caption"></label>
public override void Process(TagHelperContext context, TagHelperOutput output)
{
output.TagName = "a"; // Replaces <email> with <a> tag
var address = MailTo + "@" + EmailDomain;
output.Attributes.SetAttribute("href", "mailto:" + address);
output.Content.SetContent(address);
}
<address>
<strong>Support:</strong><email mail-to="Support"></email><br />
<strong>Marketing:</strong><email mail-to="Marketing"></email>
</address>
Referências
Dúvidas, Críticas ou Sugestões?
@vcavalcante
vcavalcante@lambda3.com.br
Razor em 7 minutos
By Victor Cunha Cavalcante
Razor em 7 minutos
- 1,333