2. ASP.NET CORE PAGES RAZOR
ASP Core Razor Pages es un marco centrado en páginas
para crear sitios web dinámicos basados en datos con
una separación clara de preocupaciones. Basado en la
última versión de ASP de Microsoft: ASP Core , Razor
Pages admite el desarrollo multiplataforma y puede
implementarse en los sistemas operativos Windows,
Unix y Mac.
2
3. Importancia
Razor Pages puede hacer que la codificación
de escenarios centrados en páginas sea más
fácil y productiva que usar controladores y
vistas". Si su aplicación ASP.NET MVC usa
vistas con frecuencia, considere migrar
acciones y vistas a Razor Pages.
3
4. Sintaxis
El idioma predeterminado de Razor es HTML, lo que representa desde Razor
como HTML. Razor admite C # y se usa@ Los símbolos cambian de HTML a C #,
y calcula las expresiones C # y las hace como salida HTML.Razor puede cambiar
de HTML desde HTML desde HTML a través de la etiqueta especificada, @El
símbolo es seguido por una palabra reservada de afeitar, y se cambiará a la
etiqueta específica de la navaja, de lo contrario, se cambia a un C # normal.
Si necesita incluir en HTML @ Si necesitas usar@@Los símbolos son esenciales.
<p>@@Email</p>
Después de la representación:
<p>@Email</p>
Esto no incluirá la dirección de correo electrónico @ símbolo porque la función
HTML y el contenido, no procesen el símbolo @ para manejar el carácter de
escape.
4
5. Expresiones Razor implícitas
Las Razor expresiones implícitas comienzan por @ seguido de código de C#:
<p>@DateTime.Now</p>
<p>@DateTime.IsLeapYear(2016)</p>
Con la excepción de la palabra clave de C# await, las expresiones implícitas no
deben contener espacios. Si la instrucción de C# tiene un final claro, se pueden
entremezclar espacios:
<p>@await DoSomething("hello", "world")</p>
Las expresiones implícitas no pueden contener tipos genéricos de C#, ya que los
caracteres dentro de los corchetes (<>) se interpretan como una etiqueta HTML. El
siguiente código no es válido:
<p>@GenericMethod<int>()</p>
El código anterior genera un error del compilador similar a uno de los siguientes:
El elemento "int" no estaba cerrado. Todos los elementos deben ser de autocierre o
tener una etiqueta de fin coincidente.
No se puede convertir el grupo de métodos "GenericMethod" en el tipo no
delegado "object". ¿Intentó invocar el método?
Las llamadas a métodos genéricos deben encapsularse en una expresión explícita
Razor o un bloqueRazor de código.
5
6. Condicionales if
Condicionales @if, else if, else, and @switch
@if controla cuándo se ejecuta el código:
@if (value % 2 == 0)
{
<p>The value was even.</p>
}
else y else if no necesitan el símbolo @:
@if (value % 2 == 0)
{
<p>The value was even.</p>
}
else if (value >= 1337)
{
<p>The value is large.</p>
}
else
{
<p>The value is odd and small.</p>
}
6
7. Switch
En el siguiente marcado se muestra cómo usar una instrucción 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 wasn't 1 or 1337.</p>
break;
}
7
8. For y foreach
@for
@for (var i = 0; i < people.Length; i++)
{
var person = people[i];
<p>Name: @person.Name</p>
<p>Age: @person.Age</p>
}
@foreach
@foreach (var person in people)
{
<p>Name: @person.Name</p>
<p>Age: @person.Age</p>
}
8
9. While y do while
@while
@{ var i = 0; }
@while (i < people.Length)
{
var person = people[i];
<p>Name: @person.Name</p>
<p>Age: @person.Age</p>
i++;
}
@do while
@{ var i = 0; }
@do
{
var person = people[i];
<p>Name: @person.Name</p>
<p>Age: @person.Age</p>
i++;
} while (i < people.Length);
9