O Razor é uma sintaxe de programação ASP.NET usado para criar páginas web dinâmicas com C# e algumas das linguagens de programação .NET. O Razor nada mais é do que um mecanismo de exibição de sintaxe simples que foi lançado como parte da ASP.NET MVC 3 e do conjunto de ferramentas Microsoft WebMatrix e é o padrão para Views no MVC 5. A sintaxe do Razor é uma sintaxe de marcação de modelo, com base na linguagem de programação C#, permite que o programador use o fluxo de trabalho de construção do HTML.
Em vez de usar a sintaxe de marcação ASP.NET .ASPX com os símbolos <% =%> para indicar blocos de código, a sintaxe do Razor começa blocos de código com um caractere @ e não requer fechamento explícito do bloco de código. A idéia por trás do Razor é fornecer uma sintaxe otimizada para a geração de HTML usando uma abordagem de modelagem com foco no código, com a transição mínima entre o código e o HTML. Páginas da Web que contenham conteúdo Razor tem uma extensão de arquivo especial (.cshtml ou .vbhtml). O servidor reconhece essas extensões, executa o código que está marcado com a sintaxe Razor, e, em seguida, envia a página resultante para o navegador.
Usando a Sintaxe do Razor
1 – Crie uma aplicação ASP.NET MVC utilizando o template padrão, caso você esteja utilizando uma versão do MVC menor ou igual a 4, você precisa escolher o Engine Razor na criação da solução. Abra a View About do projeto e a modifique de acordo com o código abaixo.
Se você não esta seguindo os exemplos anteriores MVC ignore certas partes do código abaixo:
2 – Rode sua aplicação para obter os seguintes resultados:
Exemplo:
Neste exemplo exibimos algumas das sintaxes do motor de Views chamado Razor.
C#
View
@{
//*********************************************************
//*********************************************************
//*** ***
//*** Caso não esteja utilizando os exemplos anteriores ***
//*** IGNORE as partes refententes ao Modelo nesta View ***
//*** ***
//*********************************************************
//*********************************************************
}
@model MeuMVC.Models.DevAbertoModel
@{
ViewBag.Title = "Sobre";
}
<h1>Rota: @ViewBag.rota</h1>
<h2>@Model.Nome</h2>
<h3>@Model.Apresenta</h3>
<p>@Model.Mensagem</p>
<h2>Razor Views - C#</h2>
@{
// *** Use @ {} pra utilizar a sintaxe do razor
// ***
// *** Razor possui uma sintaxe que permite usar código C# inline em uma página
// Usando variáveis no Razor
var texto = "Bem-vindo ao Razor";
var data = DateTime.Now;
var numero = 12345;
var caminho = @"C:\DesenvolvimentoAberto\";
}
<p> @texto </p>
<p> Data: @data </p>
<p> Numero @numero</p>
<p> Caminho: @caminho</p>
<h2></h2>
<table border="1">
<tr>
<td>Solicitação da URL</td>
<td>Caminho Relativo</td>
<td>Caminho Completo</td>
<td>Tipo de solicitação HTTP</td>
</tr>
<tr>
<td>@Request.Url</td>
<td>@Request.FilePath</td>
<td>@Request.MapPath(Request.FilePath)</td>
<td>@Request.RequestType</td>
</tr>
</table>



