Création des pages Web ASP.NET en utilisant le moteur de vue Razor


précédentsommairesuivant

IV. Syntaxe de base de Razor

Razor n'est pas un nouveau langage de programmation. Il s'appuie sur les langages .NET connus en l'occurrence C# et VB.NET, et la puissance d'ASP.NET pour permettre de créer facilement des applications Web robustes.

Nous allons donner dans cette section, un aperçu des fondamentaux de Razor qu'il est nécessaire de maitriser.

IV-A. Le caractère @

Le code Razor dans une page commence obligatoirement avec le caractère "magique" @. Contrairement à l'utilisation des caractères ,

 
Sélectionnez

<% %>

Razor ne vous oblige pas à fermer implicitement un bloc de code et rend les vues plus lisibles.

Pour une seule ligne de code serveur que vous insérez dans une page, la syntaxe est la suivante :

 
Sélectionnez

@DateTime.Now.ToShortDateString()

Pour mélanger une expression avec du texte sur une ligne, la syntaxe est la suivante :

 
Sélectionnez

Bonjour @nom. Nous sommes le @DateTime.Now.ToShortDateString().

IV-B. Les opérateurs de bases

Razor étant essentiellement basé sur la syntaxe du langage C#, et VB.NET, les opérateurs de base utilisés par celui-ci sont les mêmes que pour ces deux langages, en fonction du type de fichier que vous utilisez.

Pour les fichiers .schtml, nous aurons donc les opérateurs suivants que nous n'allons pas décrire cependant.

 
Sélectionnez

.     ;      >=      ;      ()     ;    +     ;     []     ; 
-     ;       =      ;      *      ;    !     ;     /      ;
==    ;      &&      ;      !=     ;    ||    ;     <>     ;
+=    ;      <=      ;      -=

IV-C. Les blocs de code

Le code sur plusieurs lignes est défini dans un bloc. Les blocs de code Razor doivent contenir le caractère @ suivi des {} (@{}).

 
Sélectionnez

@{
    
    var Nom = "Hinault";
    var Message = "Salut" + Nom;
}

Chaque instruction dans un bloc de code doit toujours s'achever avec le ;.

IV-D. Les variables

La déclaration des variables avec Razor se fait en utilisant le mot-clé "var".

 
Sélectionnez

@{
            //Affectation d'une chaine à une variable
             var Nom = " Hinault " ;
             //Affectation d'un entier
            var Compteur = 5 ;
           //Affection d'une expression
         var VFinal = Compteur +3 ;  
}

Ou en utilisant la syntaxe classique en définissant explicitement le type de données.

 
Sélectionnez

@{
string Nom = "hinault";
int Valeur =205;
DateTime Today = DateTime.Now ; 
}

Le mot-clé "new" est également pris en compte.

 
Sélectionnez

@{
var stringBuilder stB = new System.Text.StringBuilder();
}

Tout comme en C#, les noms de variables et les mots-clés comme var, if, etc. sont sensibles à la casse.

IV-E. Les chaines de caractères

Pour spécifier une chaine de caractères, vous devez simplement placer la chaine entre les guillemets.

 
Sélectionnez

@{var message = "bonjour monsieur" ; }

Si la chaine que vous souhaitez afficher contient le caractère "\", ou les guillemets, vous pouvez utiliser l'opérateur "@" pour spécifier une chaine de caractères verbatim.

 
Sélectionnez

@{
       myFilePath= @"C:\perso\";
   }
  <p>Le dossier personnel est : @folder</p>

Pour le cas du texte contenant les guillemets, l'opérateur "@" doit être utilisé, et les guillemets doivent être doublés :

 
Sélectionnez

@{
       var MyQuote = @"Les utilisateurs ont dit : ""Razor est cool.""";
   }
  <p>@MyQuote</p>

Ce qui produit comme résultat :

Les utilisateurs ont dit : " Razor est cool "

Pour un texte unique dans un bloc, la syntaxe est la suivante :

 
Sélectionnez

@{
            
   @:Nous sommes le : <b> @DateTime.Now.ToShortDateString() </b>

  }

L'analyseur de code Razor est assez intelligent dans la plupart des cas, et est capable de déduire si le caractère @ dans une page est utilisé pour un bloc de code ou pour du contenu statique.

Le caractère @ peut être utilisé par exemple pour définir un email :

 
Sélectionnez

<p>
 Mon mail est rdonfack@redaction-developpez.com
</p>

Lors de l'analyse de cette ligne par Razor, celui-ci va détecter automatiquement qu'il s'agit d'un contenu statique.

Le caractère @ peut également être échappé en le doublant simplement :

 
Sélectionnez

<p> le caractère "@@" est magique avec Razor<p>

Ce qui va donner comme résultat :

Le caractère "@" est magique avec Razor

IV-F. Les tableaux et les dictionnaires de données

Une collection est un groupe d'objets de même type. Deux types de collections sont couramment utilisés en ASP.NET : les tableaux et les dictionnaires de données.

La déclaration d'un tableau peut être faite comme suit :

 
Sélectionnez

@{
     string[] Clients = { "Hinault", "Paul", "Romain", "André", "Jean" };
            
           var Clients2 = new string[] {"Hinault", "Paul", "Romain", "André", "Jean"} ; 
}
<p>@Clients[1] est client dans notre entreprise</p>

Un dictionnaire quant à lui, est une collection qui associe une clé unique à chaque élément. On peut ensuite accéder à cet élément via sa clé.

L'implémentation d'un dictionnaire avec Razor est la suivante :

 
Sélectionnez

@{
    var mesApp = new Dictionary<string, string>();
    mesApp.Add("App1", "Visual Studio");
    mesApp.Add("App2", "WebMatrix");
    mesApp.Add("App3", "SQL Server");
   
}
<p>La seconde application couramment utilisée est : @mesApp["App2"]%</p>

IV-G. les boucles

Pour parcourir un tableau dans une vue Razor, vous pouvez utiliser les boucles for, foreach ou encore While. Leur syntaxe est reprise des langages C# et VB.NET.

IV-G-1. La boucle for

La syntaxe d'utilisation de la boucle for est la suivante :

 
Sélectionnez

@{
      string[] Clients = { "Hinault", "Paul", "Romain", "André", "Jean" };
     
        int ct = Clients.Lenght();
        
        for (var i = 0; i < ct; i++)
        {
            <p> @Clients[i]</p>
        }
   }

IV-G-2. La boucle foreach

La bouche foreach est pratique pour parcourir les collections, car contrairement à une boucle for, vous n'avez pas à incrémenter le compteur ou fixer une limite. Au lieu de cela, la boucle foreach passe simplement à travers la collection jusqu'à ce qu'elle soit terminée.

La syntaxe de cette boucle est la suivante :

 
Sélectionnez

@{
       string[] Clients = { "Hinault", "Paul", "Romain", "André", "Jean" };
        
        foreach (var Client in Clients)
        {
            <p> @Client</p>
        }
    }

IV-G-3. La boucle While

La syntaxe d'utilisation de la boucle While dans une vue Razor est la suivante :

 
Sélectionnez

@{
       string[] Clients = { "Hinault", "Paul", "Romain", "André", "Jean" };
        int ct = Client.Count();
          int i = 0;
        While (i < ct)
        {
            <p> @Client[i]</p>
		i += 1 ;
        }
    }

IV-H. Les structures de contrôles

La syntaxe basique de la condition if est la suivante :

 
Sélectionnez

@ {
  var showToday = true; 
  if(showToday) if (showToday)
  { 
    @DateTime.Today; @ DateTime.Today;
  }
}  

Et avec un else :

 
Sélectionnez

@{
  var showToday = false;
  if(showToday)
  {
    @DateTime.Today;
  }
  else
  {
    <text>Désolé!</text>
  }
}

L'utilisation du switch peut être faite comme suit :

 
Sélectionnez

@{
    var Civilite = "M";
    var Message = "";

    switch(Civilite)
    {
        case "M":
            Message = "Bonjour Monsieur";
            break;
        case "Mme":
            Message = "Bonjour Madame";
            break;
        case "Mlle":
            Message = "Bonjour Mademoiselle";
            break;
        default:
            Message = "Inconnu";
            break;
    }

    <p>@Message</p>
}

IV-I. Les commentaires

L'inclusion des commentaires dans un code Razor commence avec les caractères-clefs "@*", et se termine avec les caractères "*@".

 
Sélectionnez

@{
        @* Un simple commentaire sur une ligne *@
       var nom = "Hinault";   

       @* commentaires sur plusieurs
             lignes *@
      
       @* un autre commentaire sur plusieurs lignes
          var nom = "Hinault";   
        fin du commentaire *@
}

Les commentaires traditionnels en C# ou en VB.NET (en fonction du type de fichier que vous utilisez) sont également pris en compte dans un bloc de code Razor.

 
Sélectionnez

@ {
    // Un commentaire sur une ligne en C#. 
    var nom = "Hinault";   
    /* Commentaire sur plusieurs lignes 
    En utilisant le langage C# avec Razor */
} 

IV-J. Gestion des exceptions

Pour la gestion des exceptions, le traditionnel try{}catch(){}, peut être utilisé dans une vue Razor.

Sa syntaxe est la suivante :

 
Sélectionnez

@{
 int a=0, b=0;
 try
  {
     b = 5 / a;
  }
 catch (DivideByZeroException Ex)
  {
    <p> impossible de diviser un nombre par zéro </p>
    <p>Details : @Ex.message</p>
   }
}

précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © Developpez. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.