ASP.NET Razor - Sintaxis de código en C# y VB

Razor admite tanto C# (C sharp) como VB (Visual Basic).

Las reglas principales de la sintaxis Razor de C#

  • El código Razor está encapsulado en @{ ... }
  • Las expresiones en línea (variables y funciones) comienzan con @
  • Las instrucciones de código terminan con punto y coma
  • Las cadenas de caracteres están envueltas en comillas
  • El código C# es sensible a mayúsculas y minúsculas
  • El archivo C# tiene la extensión .cshtml

Ejemplo de C#

<!-- Bloque de código de una línea -->
@{ var myMessage =	"Hello World"; }
<!-- Expresiones o variables en línea -->
<p>El valor de myMessage es: @myMessage</p> 
<!-- Bloque de código de múltiples líneas -->
@{
var greeting = "Bienvenido a nuestro sitio!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Aquí en Huston es: " + weekDay;
}
<p>El saludo es: @greetingMessage</p>

Ejecutar ejemplo

Las reglas principales de la sintaxis Razor de VB

  • Los bloques de código Razor están encerrados entre @Code ... End Code
  • Las expresiones en línea (variables y funciones) comienzan con @
  • Las variables se declaran con la palabra clave Dim
  • Las cadenas de caracteres están envueltas en comillas
  • VB es insensible a mayúsculas y minúsculas
  • El archivo VB tiene la extensión .vbhtml

Ejemplo

<!-- Bloque de código de una línea -->
@Code dim myMessage = "Hello World" End Code
<!-- Expresiones o variables en línea -->
<p>El valor de myMessage es: @myMessage</p> 
<!-- Bloque de código de múltiples líneas -->
@Code
dim greeting = "¡Bienvenido a nuestro sitio!" 
dim weekDay = DateTime.Now.DayOfWeek 
dim greetingMessage = greeting & " Aquí en Huston es: " & weekDay
Finalizar Código 
<p>El saludo es: @greetingMessage</p>

Ejecutar ejemplo

¿Cómo funciona?

Razor es una sintaxis de programación simple utilizada para incrustar código del lado del servidor en páginas web.

La sintaxis Razor se basa en el framework ASP.NET, que es una parte especial del framework .NET de Microsoft diseñada específicamente para el desarrollo de aplicaciones web.

La sintaxis Razor le brinda todas las capacidades de ASP.NET, pero utiliza una sintaxis simplificada, lo que facilita su aprendizaje para principiantes y mejora la productividad para expertos.

Las páginas web de Razor se pueden describir como páginas HTML con dos tipos de contenido: contenido HTML y código Razor.

Cuando el servidor lee esta página, antes de enviar la página HTML al navegador, primero ejecuta el código Razor. Estos códigos ejecutados en el servidor pueden completar tareas que no se pueden realizar en el navegador, como acceder a la base de datos del servidor. El código del servidor puede crear contenido HTML dinámico antes de que la página se envíe al navegador. Desde el punto de vista del navegador, el HTML generado por el código del servidor no se diferencia del contenido HTML estático.

Las páginas web de ASP.NET con sintaxis Razor tienen una extensión de archivo especial cshtml (usando la sintaxis Razor de C#) o vbhtml (usando la sintaxis Razor de VB).

Trabajar con objetos

El código del servidor a menudo implica objetos.

El objeto "Date" es un objeto integrado典型 de ASP.NET, pero también se puede definir objetos personalizados, como una página web, un cuadro de texto, un archivo, o un registro de base de datos, etc.

Los objetos pueden tener métodos que pueden ejecutarse. Los registros de bases de datos pueden proporcionar un método "guardar", el objeto de imagen puede tener un método "girar", el objeto de correo electrónico puede proporcionar un método "enviar", y así sucesivamente.

Los objetos también pueden tener propiedades que describen sus características. Los registros de bases de datos pueden tener propiedades FirstName y LastName.

El objeto Date de ASP.NET tiene la propiedad Now (escrita como Date.Now), la propiedad Now tiene la propiedad Day (escrita como Date.Now.Day). El siguiente ejemplo muestra cómo acceder a ciertas propiedades del objeto Date:

Ejemplo

<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>

Ejecutar ejemplo

If y Else condiciones

动态网页的重要特性是基于条件来确定执行的动作。

实现这一点的常用方法是使用 if ... else 语句:

Ejemplo

@{
var txt = "";
if(DateTime.Now.Hour > 12)
  {txt = "Buenas noches";}
else
  {txt = "Buenos días";}
}
<html>
<body>
<p>El mensaje es @txt</p>
</body>
</html>

Ejecutar ejemplo

Leer entrada de usuario

Otra característica importante de las páginas web dinámicas es leer la entrada del usuario.

Leído por la función Request[] y probado con la condición IsPost:

Ejemplo

@{
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">Primer número:</label><br>
<input type="text" name="text1" /></p>
<p><label for="text2">Segundo número:</label><br>
<input type="text" name="text2" /></p>
<p><input type="submit" value="Agregar" /></p>
</form>
<p>@totalMessage</p>
</body>
</html>

Ejecutar ejemplo