From Publiquensine

MVC Razor C# Sintaxe

A Devsol Softwares como já é de conhecimento de todos os colaboradores, está dando segmento a um de seus projetos mais ousados, não entrando no mérito inovação mas sim tecnicamente falando. Com esse Post busco introduzir alguns conceitos básicos sobre o MVC Razor para que torne mais fácil o entendimento de futuros Post’s que abordem o projeto Publiquesine de forma mais profunda.

Principais Regras

  • Blocos de código Razor são declarados @{…}
  • Funções e variáveis começam com @
  • Linhas de código terminam com ponto e vírgula
  • String são colocados entre aspas como no padrão .NET
  • Toda parte de C# é case sensitive, ou seja, deve se respeitar a sintaxe bem como suas letras maiúsculas e minusculas
  • Os arquivos em c# possuem a extensão .cshtml

C# Exemplo

  1. <!—Declaração simples de uma variável–>
    @{ var minhaMensagem = “Olá pessoal”; }
  2. <!—Expressão regular de uma variável–>
  3. <p>The value of myMessage is: @minhaMensagem </p>
  4. <!– Bloco de concatenação de variáveis –>
    @{
    var saudacao = “Welcome to our site!”;
    var diaSemana = DateTime.Now.DayOfWeek;
    var saudacaoMsg = saudacao + ” Estou em Porto Alegre, e hoje é dia: ” + diaSemana ;
    }
  5. <p>The greeting is: @saudacaoMsg </p>

Como funciona

O razor é uma syntaxe de programação que pode ser incorporada no código das páginas que o servidor WEB recebe (HTML). É baseado no arquitetura dos frameworks ASP.NET, mas usa uma syntaxe simplificada que é mais fácil de apreder.

Quando um servidor WEB interpreta uma página em HTML que contém códigos Razor este é executado em primeiro lugar antes de enviar a página HTML para o navegador. O código que é executado no servidor pode executar tarefas que não podem ser feitas no navegador, por exemplo acesso a um banco de dados do servidor.

Trabalhando com Objetos

O objeto “Data” é um tipo de objeto imbutido no ASP.NET, mas objetos também podem ser auto-definidos, uma página web, uma caixa de texto, um arquivo, um registro de banco de dados etc.
Os objetos podem ter métodos que desempenham um registro de banco de dados através de um método “Save”, um objeto de imagem pode ter um método “Girar”, um objeto de e-mail pode ter um “Enviar” e assim por diante.

Existe também propriedades que descrevem suas características. Um registro de banco de dados pode ter um FirstName e uma respectiva propriedades Apelido.

O exemplo abaixo mostra como acessar algumas propriedades do Objeto Date:

  1. Day: @DateTime.Now.Day
  2. Hour: @DateTime.Now.Hour
  3. Minute: @DateTime.Now.Minute
  4. Second: @DateTime.Now.Second

Condições

@var txt = “”;
if(DateTime.Now.Hour > 12)
{
txt = “Boa tarde”;
}
else
{
txt = “Bom dia”;}
}
<html>
<body>
<p>A mensagem é: @txt </p>
</body>
</html>

Exemplo de outras complexidades

<div class=”sidebar”>
         @foreach (var item in @Model.ListaEsfera()
          if (item.Nome.ToLower().Equals(@Model.f_esfera))
         {
                  @Html.RadioButtonFor(m => m.f_esfera, item.Nome, new { @checked = “checked”,                                                        onchange = “this.form.submit();”, style = “margin-right:5px” })
          }
         else{
                  @Html.RadioButtonFor(m => m.f_esfera, item.Nome, new { onchange =                                                                               “this.form.submit();”, style = “margin-right:5px” })
         }

         @Html.Label(@item.Nome)
}
</div>

Como funciona

Como mencionamos acima o Razor é uma syntaxe de programação incorporada ao HTML, portanto no exemplo acima criamos uma forma dinâmica de adicionar elementos HTML, no caso RadioButtons (Note que tudo esta encapsulado dentro de uma <div> (elemento comum do html).
No exemplo acima, para cada elemento existente no parâmetro do foreach ele incorpora RadioButtons  (http://www.c-sharpcorner.com/uploadfile/mahesh/radio-button-in-C-Sharp/) com seu atributo nome e dependendo da validação poderá vir selecionado “@checked = “checked”. Abordaremos com mais detalhes este tipo de operação em futuros Post da categoria de desenvolvimento.

Conclusão

Espero que este poste ajude, esclareça, desperte curiosidade sobre esta tecnologia que é nova para todos nós. Deixo abaixo links que podem ajudar a introduzir melhor o assunto na mente de todos que querem aprender.

Um forte abraço e bons estudos.

http://www.microsoftvirtualacademy.com/training-courses/introduction-to-asp-net-mvc

http://www.w3schools.com/aspnet/webpages_razor.asp

http://weblogs.asp.net/scottgu/introducing-razor