2010-11-17 5 views
0

J'ai une application mvc où j'ai 4 boutons sur ma page web. J'ai besoin d'activer/désactiver chaque bouton basé sur un flux de travail d'un tas de conditions différentes. Quelle est la meilleure façon de gérer cela? En ce moment, il y a presque 30 conditions et ça compte.quatre boutons et un tas de conditions

Pas vraiment à la recherche d'une solution spécifique autant qu'un processus de réflexion ou une approche pour rester simple.

Merci, tige.

+0

Qu'avez-vous maintenant? – jfar

Répondre

0

Je voudrais créer différents vues partielles pour chaque scénario , pas chaque jeu de boutons. De cette manière, vous pouvez gérer les vues en fonction des besoins de votre entreprise.

Dans votre ViewModel principal, stockez le "scénario", et non "les drapeaux pour chaque bouton".

par exemple:

public ActionResult Index() 
{ 
    var viewModel = new ViewModel(); 
    viewModel.ScenarioName = "Scenario1"; 
    return View(viewModel); 
} 

Alors si votre "ScenarioName" correspond au nom de la vue partielle, vous pouvez simplement faire ceci:

<%: RenderPartial(Model.ScenarioName, Model.SomethingYouNeedForPartial) %> 

De cette façon, votre contrôleur/viewmodel reste vraiment propre.

Bien sûr, tout dépend de vos "conditions" et de vos règles de gestion.

0

Sans savoir trop sur votre situation (comme si ces conditions sont connues, ou si les conditions sont basées sur les mesures prises par l'utilisateur), c'est là que je commencerais:

Je commencerais avec un ViewModel:

public class ViewModel 
{ 
    public bool ShowButton1 {get; set;} 
    public bool ShowButton2 {get; set;} 
    public bool ShowButton3 {get; set;} 
    public bool ShowButton4 {get; set;} 
} 

Et mettre la logique pour les conditions dans vos contrôleurs:

public ActionResult Index() 
{ 
    var viewModel = new ViewModel(); 
    viewModel.ShowButton1 = condition1 && condition2; 
    viewModel.ShowButton2 = condition3 && condition4; 
} 
0

WPF utilise des commandes qui vous permettent d'assigner un événement CanExecute t o chaque commande. Entasse plus d'informations au http://msdn.microsoft.com/en-us/library/ms752308.aspx. J'éviterais d'utiliser une seule grande fonction avec beaucoup de conditions imbriquées, car celles-ci deviennent impossibles à lire.

+1

Je ne suis pas sûr que WPF aiderait avec un site MVC. – jfar

Questions connexes