/ / La méthode Razor Chaining / Fluent ne fonctionne pas avec les sauts de ligne - asp.net-mvc, asp.net-mvc-3, razor

La méthode Razor Chaining / Fluent ne fonctionne pas avec les sauts de ligne - asp.net-mvc, asp.net-mvc-3, rasoir

Disons simplement que j'ai une syntaxe fluide dans rasoir comme ceci:

@Model.ListOfStuff.Where(x=>x.StuffProp == "Some Stuff").FirstOrDefault().SomeOtherProp

Mais disons que c'était en réalité très longparce que c'est un assistant qui construit une grille complexe. Si tout est sur une ligne, cela fonctionne bien, mais quand il est sur plus d'une ligne, il s'effondre. Comment puis-je réparer cela?

@Model.ListOfStuff.Where(x=>x.StuffProp == "Some Stuff")
.FirstOrDefault().SomeOtherProp

Réponses:

8 pour la réponse № 1

Avoir une telle syntaxe dans une vue est juste faux et je ne peux pas insister davantage là-dessus. Il n’est pas de la responsabilité de la vue de filtrer et d’extraire des données. Sa responsabilité est d’afficher les données fournies par le contrôleur. Je vous recommande donc vivement d’utiliser un modèle de vue et d’effectuer toutes les sélections dans le contrôleur afin que dans la vue tout ce que vous avez à écrire est:

@Model.SomeStuff

Comme vous pouvez le constater, vous ne devez plus vous soucier des sauts de ligne dans une vue.

Mais pour répondre à votre question, la laideur pourrait être entourée de parenthèses:

@(Model.ListOfStuff.Where(x => x.StuffProp == "Some Stuff")
.FirstOrDefault().SomeOtherProp)