O Razor suporta C# (C sustenido) e VB (Visual Basic).
Esta seção explica as regras de sintaxe do Razor C# e Razor VB.
Os blocos de código do Razor são colocados entre @{...}
Expressões embutidas (variáveis e funções) começam com @
Finalize as instruções de código com ponto e vírgula
Variáveis são declaradas usando a palavra-chave var
Strings entre aspas
O código C# diferencia maiúsculas de minúsculas
A extensão do arquivo C# é .cshtml
<!-- Bloco de instrução única --> @{ var myMessage = "Hello World" }; <!-- Expressão ou variável embutida --> <p>O valor de myMessage é: @myMessage </p> <!-- Bloco de múltiplas instruções --> @{var saudação = "Bem-vindo ao nosso site!";var weekDay = DateTime.Now.DayOfWeek;var saudaçãoMessage = saudação + " Aqui em Huston é: " + dia da semana;} <p>A saudação é: @greetingMessage </p>
Os blocos de código Razor são colocados em @Code ... End Code
Expressões embutidas (variáveis e funções) começam com @
Variáveis são declaradas usando a palavra-chave Dim
Strings entre aspas
O código VB não diferencia maiúsculas de minúsculas
A extensão dos arquivos VB é .vbhtml
<!-- Bloco de instrução única --> @Code dim myMessage = "Hello World" End Code <!-- Expressão ou variável embutida --> <p>O valor de myMessage é: @myMessage </p> <!-- Bloco de múltiplas instruções --> @Codedim saudação = "Bem-vindo ao nosso site!" <p>A saudação é: @greetingMessage </p>
Razor é uma sintaxe de programação simples para incorporar código de servidor em páginas da web.
A sintaxe do Razor é baseada na estrutura ASP.NET, uma parte da estrutura Microsoft .NET projetada especificamente para a criação de aplicativos da Web.
A sintaxe do Razor oferece suporte a todos os recursos do ASP.NET, mas usa uma sintaxe simplificada que é mais fácil de aprender para iniciantes e mais eficiente para especialistas.
Uma página da web Razor pode ser descrita como uma página HTML com dois tipos de conteúdo: conteúdo HTML e código Razor.
Quando o servidor lê a página, ele primeiro executa o código Razor antes de enviar a página HTML ao navegador. O código executado no servidor pode realizar tarefas que não podem ser concluídas no navegador, como acessar o banco de dados do servidor. O código do servidor pode criar conteúdo HTML dinâmico e enviá-lo ao navegador. Do ponto de vista do navegador, o HTML gerado pelo código do servidor não é diferente do conteúdo HTML estático.
As páginas da web ASP.NET com sintaxe Razor possuem extensões de arquivo especiais cshtml (Razor C#) ou vbhtml (Razor VB).
A codificação do servidor geralmente envolve objetos. O objeto "Data" é um objeto ASP.NET integrado típico, mas o objeto também pode ser personalizado, uma página da web, uma caixa de texto, um arquivo, um registro de banco de dados, etc. Objetos possuem métodos para execução. Um registro de banco de dados pode ter um método "Salvar", um objeto de imagem pode ter um método "Rodar", um objeto de e-mail pode ter um método "Enviar" e assim por diante. Os objetos também possuem propriedades que descrevem suas características. Um registro de banco de dados pode ter propriedades FirstName e LastName.
O objeto Date do ASP.NET possui uma propriedade Now (escrita como Date.Now) e a propriedade Now possui uma propriedade Day (escrita como Date.Now.Day). O exemplo a seguir demonstra como acessar algumas propriedades do objeto Data:
<table> <tr> <th>Nome</th> <td>Valor</td> </tr> <tr> <td>Dia</td><td>@DateTime.Now.Day </td> </tr> <tr> <td>Hora</td><td>@DateTime.Now.Hour </td> </tr> <tr> <td>Minuto</td><td>@DateTime.Now.Minute </td> </tr> <tr> <td>Segundo</td><td>@DateTime.Now.Second </td> </tr> </td> </table>
Um recurso importante das páginas da web dinâmicas é que você pode decidir o que fazer com base nas condições.
Uma maneira comum de fazer isso é usar instruções if...else:
@{var txt = "";if(DateTime.Now.Hour > 12){txt = "Boa noite";}else{txt = "Bom dia";}} <html> <body> <p>A mensagem é @txt </p> </body> </html>
Outro recurso importante das páginas da web dinâmicas é que você pode ler a entrada do usuário.
A entrada é lida por meio da função Request[] e os dados de entrada são transmitidos por meio da condição IsPost:
@{var totalMessage = "";if(IsPost){var num1 = Request["text1"];var num2 = Request["text2"];var total = num1.AsInt() + num2.AsInt();totalMessage = "Total = " + total;}} <html> <body style="background-color: bege; font-family: Verdana, Arial;"> <form action="" method="post"> <p><label for="text1">Primeiro número: </label><br> <input type="text" name="text1" /></p> <p><label for="text2">Segundo número:</label><br> <input type= "texto" name="text2" /></p> <p><input type="submit" value=" Add " /></p> </form> <p>@totalMessage </p> </body> </html>