J’utilise Razor en dehors d’ASP.NET pour générer des documents XML à partir d’un modèle. J’ai le code suivant:
@foreach (var parameter in Model.Parameters) { @parameter.Value }
où Model.Parameters est juste une collection nom / valeur. Ma sortie attendue devrait être:
value1 value2 value3
mais ce que je reçois réellement, c’est:
value1 value2 value3
Qu’est-ce que je fais mal? Quelle est la sauce secrète que je dois appliquer pour que les éléments dynamics se ferment correctement?
EDIT Alors maintenant, mon modèle évolue pour avoir plusieurs événements, et mon code Razor ressemble à ceci:
@foreach (var _event in Model.Events) { @foreach (var parameter in _event.Parameters) { @:@parameter.Value } }
la sortie devrait être:
value1 value2 value1
mais c’est en réalité:
value1 value2 value1
SOLUTION Après de nombreux essais et erreurs, j’ai finalement retrouvé la sauce secrète manquante. L’élément XML d’ouverture dynamic avait besoin du préfixe ?:
Pour restituer correctement l’élément de fermeture. Très bizarre.
@foreach (var _event in Model.Events) { @: @foreach (var parameter in _event.Parameters) { @:@parameter.Value } }
Vous devez écrire @(parameter.Key)>
pour empêcher Razor de penser que c’est une adresse électronique.