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