ASP.NET Razor - sintaxe de código C# e VB
Razor suporta tanto C# (C afiado) quanto VB (Visual Basic).
Principais regras de sintaxe do Razor para C#
- Blocos de código Razor são incluídos em @{ ... }
- Expressões em linha (variáveis e funções) começam com @
- As instruções de código terminam com ponto e vírgula
- As variáveis são declaradas com a palavra-chave var
- As strings são colocadas entre aspas
- O código C# diferencia maiúsculas de minúsculas
- Os arquivos C# têm a extensão .cshtml
Exemplo de C#
<!-- Single statement block -->
@{ var myMessage = "Hello World"; }
<!-- Inline expression or variable -->
<p>The value of myMessage is: @myMessage</p>
<!-- Multi-statement block -->
@{
var greeting = "Welcome to our site!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Here in Huston it is: " + weekDay;
}
<p>The greeting is: @greetingMessage</p>
Principais regras de sintaxe do Razor para VB
- Blocos de código Razor são incluídos em @Code ... End Code
- Expressões em linha (variáveis e funções) começam com @
- As variáveis são declaradas com a palavra-chave Dim
- As strings são colocadas entre aspas
- O código VB não diferencia maiúsculas de minúsculas
- Os arquivos VB têm a extensão .vbhtml
Exemplo
<!-- Single statement block -->
@Code dim myMessage = "Hello World" End Code
<!-- Inline expression or variable -->
<p>The value of myMessage is: @myMessage</p>
<!-- Multi-statement block -->
@Code
dim greeting = "Welcome to our site!"
dim weekDay = DateTime.Now.DayOfWeek
dim greetingMessage = greeting & " Here in Huston it is: " & weekDay
End Code
<p>The greeting is: @greetingMessage</p>
Como funciona?
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, a parte do Microsoft.NET Framework projetada especificamente para criar aplicativos da Web.
A sintaxe do Razor oferece todo o poder do ASP.NET, mas está usando uma sintaxe simplificada que é mais fácil de aprender se você for um iniciante e o torna mais produtivo se você for um especialista.
As páginas da Web Razor podem ser descritas como páginas HTML com dois tipos de conteúdo: conteúdo HTML e código Razor.
Quando o servidor lê a página, ele executa o código Razor primeiro, antes de enviar a página HTML para o navegador. O código que é executado no servidor pode realizar tarefas que não podem ser feitas no navegador, por exemplo, acessar um banco de dados do servidor. O código do servidor pode criar conteúdo HTML dinâmico em tempo real, antes de ser enviado ao navegador. Visto 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 têm a extensão de arquivo especial cshtml (Razor usando C#) ou vbhtml (Razor usando VB).
Trabalhando com objetos
A codificação do servidor geralmente envolve objetos.
O objeto "DateTime" é um objeto ASP.NET interno típico, mas os objetos também podem ser autodefinidos, uma página da Web, uma caixa de texto, um arquivo, um registro de banco de dados etc.
Os objetos podem ter métodos que podem executar. Um registro de banco de dados pode ter um método "Save", um objeto de imagem pode ter um método "Rotate", um objeto de email pode ter um método "Send" e assim por diante.
Os objetos também possuem propriedades que descrevem suas características. Um registro de banco de dados pode ter uma propriedade FirstName e LastName (entre outras).
O objeto ASP.NET DateTime tem uma propriedade Now (escrita como DateTime.Now), e a propriedade Now tem uma propriedade Day (escrita como DateTime.Now.Day). O exemplo abaixo mostra como acessar algumas propriedades do objeto DateTime:
Exemplo
<table border="1">
<tr>
<th
width="100px">Name</th>
<td width="100px">Value</td>
</tr>
<tr>
<td>Day</td><td>@DateTime.Now.Day</td>
</tr>
<tr>
<td>Hour</td><td>@DateTime.Now.Hour</td>
</tr>
<tr>
<td>Minute</td><td>@DateTime.Now.Minute</td>
</tr>
<tr>
<td>Second</td><td>@DateTime.Now.Second</td>
</tr>
</td>
</table>
Condições Se e Senão
Um recurso importante das páginas da Web dinâmicas é que você pode determinar o que fazer com base nas condições.
A maneira comum de fazer isso é com as instruções if ... else:
Exemplo
@{
var txt = "";
if(DateTime.Now.Hour > 12)
{txt = "Good Evening";}
else
{txt = "Good Morning";}
}
<html>
<body>
<p>The message is @txt</p>
</body>
</html>
Lendo a entrada do usuário
Outro recurso importante das páginas da Web dinâmicas é que você pode ler a entrada do usuário.
A entrada é lida pela função Request[] e a postagem (input) é testada pela condição IsPost:
Exemplo
@{
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: beige; font-family: Verdana, Arial;">
<form
action="" method="post">
<p><label for="text1">First Number:</label><br>
<input type="text" name="text1" /></p>
<p><label for="text2">Second
Number:</label><br>
<input type="text" name="text2" /></p>
<p><input
type="submit" value=" Add " /></p>
</form>
<p>@totalMessage</p>
</body>
</html>