2010-01-11 3 views

Répondre

2

Je ne sais pas si c'est ce que vous avez vu, mais here est un blog qui le mentionne. Voir l'article # 11.

+0

Oui, c'est celui dont je me souviens! Les liens dans les autres réponses sont bons aussi, alors merci! – JoelFan

0

Je pense que c'est très bien. Cela permet à la vue d'avoir le contrôle de sa présentation.

0

Je soupçonne que le but était d'essayer d'éviter le code spaghetti plutôt que de restreindre l'utilisation de "si", voici un lien vers un blog de Rob Conery à ce sujet, il mentionne peut-être ce que vous avez vu

9

Je pense que vous faites référence est un post by Rob Conery, où il mentionne une règle qu'il utilise:

S'il y a un if, faire une aide

Donc, pour répondre à votre question, l'idée est que si vous avez besoin d'utiliser if dans votre vue, vous devriez envisager d'ajouter une méthode d'extension d'assistance pour rendre cette partie de votre vue à la place.

0

Est-ce le problème dont vous parlez?

expressions de liaison ne peuvent pas être utilisés dans le bloc de déclaration <%%>, tout comme les déclarations ne peuvent pas être utilisés dans un bloc d'expression de liaison <% #%>

- bruce (sqlwork.com)

"Jason" <> a écrit dans le message nouvelles: 23C11F83-A2AA-406D-BDEC -...

Quel est le problème avec ce qui suit si la déclaration dans ma page aspx?

"T" Puis%>

Je reçois une erreur qui indique: BC30201: Expression attendue.

Barker Bruce

10

Fondamentalement, ce que cela signifie est que vous ne devriez pas avoir énorme si les déclarations de vos vues, vos contrôleurs et ViewModels devraient être en mesure de gérer la logique. Exemple:

<h2 class="title"> 
    <% if (ViewData["category"] == null { %> 
     All Products 
    <% } else { % > 
     <%= ViewData["category"] %> 
    <% } %> 
</h2> 

devrait être:

<h2 class="title> 
    <%= Model.Title %> 
</h2> 

Si vos contrôleurs et ViewModels ne peuvent pas gérer la logique, vous devriez écrire Html Helpers pour la logique plus complexe (ce qui rend plus lisible et réutilisable).

<h2 class="title> 
    <%= Html.GetPageTitle(Model.Category) %> 
</h2> 
2

Comme je pense que la meilleure approche pour c'est d'essayer de gérer votre si la condition dans le contrôleur et passer le point de vue spécifique pour résultat requis ou passer le nom de la vue dans une variable de rendre.

public class HomeController :Controller 
{ 
    public ActionResult Category(string? category) 
    { 
     View viewToReturn; 
     if (category == null) 
      viewToReturn = View("CategoryList", repo.GetAllCategory); /// it is a View 
     else 
      viewToReturn = View("Category", repo.GetCategory(category)); /// it is a View 

     return viewToReturn; 
    } 
} 

Eh bien, Martin répond également aux meilleures pratiques.

Questions connexes