Comment utiliser une syntaxe générique dans un fichier de vue Razor?

J’essayais d’utiliser la déclaration suivante:

@Html.Test().Nand() 

Cependant, Razor est en train de s’étouffer au niveau <avant ISQL.

Un fonctionnaire travaille-t-il pour cela?

Pour utiliser des méthodes génériques, vous devez échapper à l’expression

 @(Html.Test().Nand()) 

Je viens de trouver cette question quand je cherchais cette “même erreur” lors de la mise à niveau de mvc.

J’avais :

Ne marche pas:

 @{ ViewBag.Title = "Something " + @Model.Title; var something = (IEnumerable)ViewBag.Options; } 

Apparemment, la syntaxe est devenue plus ssortingcte, et comme vous êtes dans un bloc @ {}, vous ne devriez pas append @ avant Model.Title sur l’exemple. Mais l’erreur sur l’éditeur de code indiquait le générique et cela me rendait fou.

Cela fonctionne bien s’il n’y a pas de <> dans le code, mais simplement de supprimer le @ de Model.Title corrige le problème.

Travaux:

 @{ ViewBag.Title = "Something " + Model.Title; var something = (IEnumerable)ViewBag.Options; } 

J’espère que cela aide quelqu’un

J’apprécie le fait que cette «réponse» soit un peu tardive et que la question a manifestement été traitée de manière satisfaisante (et bien). Cependant, pour les futurs visiteurs de cette page, si vous recherchez un guide de référence plus complet, vous trouverez la syntaxe MS introduction à Razor , ainsi que le blog de référence rapide Razor de Phil Haack.

J’ai eu un cas étrange quand j’ai eu plusieurs missions à l’intérieur d’un seul @{ ... } bock.

 @{ // ... other assignments (without error) List ssortingngList = new List() // ERROR MESSAGE HERE } 

Quoi que j’ai fait, il y avait toujours des erreurs, comme ceci:

L’utilisation du type générique ‘List’ nécessite des arguments de type

La solution : je mets la ligne d’affectation sur un second @{ ... } bock .

 @{ // ... other assignments } @{ List ssortingngList = new List() // WORKS } 

Il s’agit du caractère @, cet exemple fonctionne avant la mise à niveau

 @{ ssortingng @class = ViewBag.@class; IDictionary htmlAtsortingbutes = new Dictionary(); } 

Après la mise à niveau, il doit être séparé en deux blocs

 @{ ssortingng @class = ViewBag.@class; } @{ IDictionary attrs = new Dictionary(); }