Professional Documents
Culture Documents
Sintaxe Razor
Nesta apresentao ser mostrada a sintaxe usada pelo Razor, o view engine usado nas
aplicaes ASP .NET MVC3+ e no Web Matrix.
A sintaxe Razor embute em uma mesma pgina web cdigo que roda no servidor,
marcaes HTML, seletores CSS e cdigo de linguagens de script, como JavaScript.
O caractere @ usado para declarar blocos de instrues, retornar o resultado de
expresses, invocar mtodos, acessar propriedades, declarar variveis, criar uma instncia
de uma classe, etc.
Sintaxe Razor
A sintaxe Razor extremamente simples. Por exemplo, para retornar a data atual, usamos
a linha a seguir:
<p>@DateTime.Now</p>
Sintaxe Razor
Variveis voc pode declarar variveis normalmente definindo o tipo de dados:
@{
}
<!DOCTYPE html>
<html>
<body>
<div>
<p>Total: @resultado</p>
<p>Multiplicao: @(x*y)</p>
</div>
</body>
</html>
Sintaxe Razor
Ou usando a palavra-chave var:
@{
Sintaxe Razor
Comentrios no Razor, comentrios comeam com @* e termina com *@. Isso se aplica a comentrios
em mltiplas linhas ou em uma linha.
@{
*@
Comentrio dividido em
vrias linhas
@{
*/
Comentrio dividido em
vrias linhas
Sintaxe Razor
Instruo if a instruo if retorna verdadeiro ou falso com base em um teste especfico:
@{
Sintaxe Razor
Instruo switch a instruo switch testa se determinado valor combina com uma instruo case. Se retorna
verdadeiro, o cdigo da instruo case executado.
@{
<!DOCTYPE html>
<html>
<body>
<div>
<p>
@mensagem
</p>
</div>
</body>
</html>
Sintaxe Razor
Instruo for a instruo for caracterizada como loop contador, ou seja, voc percorre os
extremos conhecidos:
@{
}
Sintaxe Razor
Instruo foreach a instruo foreach usada para percorrer itens de uma coleo:
@{
Sintaxe Razor
Propriedades e mtodos
Com o caractere @ acessamos propriedades:
@{
E invocamos mtodos:
@{Html.RenderAction (ListaProdutos);
@{
}
Sintaxe Razor
Manipulando excees para manipular excees com Razor, basta incluir um bloco try e
catch. Exemplo:
@{
try {
}
catch (FileNotFoundException) {
<p>Arquivo no encontrado.</p>;
}
catch (Exception) {
<p>Erro detectado.</p>
}
Sintaxe Razor
Converses a sintaxe Razor possui diveros mtodos que nos permitem forar uma
converso explicita de um tipo de dados para outro.
Tabela 1 Mostra os mtodos usados na converso e verificao de dados.
Mtodo
Descrio
AsInt(), IsInt()
AsInt() converte uma string para um inteiro. IsInt() verifica se um tipo int vlido.
AsBool(), IsBool()
AsBoll() converte string para boleano (true, false). IsBool() verifica se um tipo Bool
AsFloat(), IsFloat()
AsFloat() converte uma string para um tipo flutuante. IsFloat() verifica se um tipo
flutuante vlido.
AsDecimal(), IsDecimal()
AsDateTime(), IsDateTime()
AsDateTime() converte uma string para um tipo data e hora. IsDateTime() verifica se
um tipo DateTime vlido.
ToString()
Sintaxe Razor
Exemplo de converso de tipo:
@{
Sintaxe Razor
Operadores os operadores do C# podem ser usados normalmente com a sintaxe Razor.
Exemplo:
@{
}
...
...
int x = 12;
int y = 5;
int resultado = 0;
if (x >= 10 && y < 7) {
resultado = y + y;
}
else {
resultado = y y;
}
<div>
<p>@resultado</p>
</div>
Sintaxe Razor
Href o mtodo Href converte endereo relativos de uma imagem, arquivo CSS, pginas web
para um endereo que o navegador entende. Exemplo:
<img src=@Href(~/Content/Imagens)/logo.gif />
<link rel=stylesheet type=text/css href=@Href(~/Content/Site.css) />
O mecanismo de exibio ASPX usa o mtodo Resolver. Exemplo:
<%:Html.Image(idImag, ResolveUrl(~/Content/imagem.jpg), Descrio) %>
Sintaxe Razor
Associando classes a sintaxe Razor usa a palavra-chave model para associar classes a um
view:
@model IEnumerable<AppMeuProjeto.Models.Clientes>
Para acessar membros da classe Clientes simples. Exemplo:
<ul>
@{ foreach(var item in Model)
{
<li>
@item.Nome;
</li>
}
}
</ul>