2010-11-17 53 views
0

我有一个mvc应用程序,我的网页上有4个按钮。我需要根据一系列不同条件的工作流程启用/禁用每个按钮。管理这个最好的方法是什么?现在,差不多有30个条件和计数。四个按钮和一堆条件

没有真正寻找一个特定的解决方案,就像思考过程或保持简单的方法一样。

谢谢, 杆。

+0

你现在有什么? – jfar 2010-11-17 04:36:01

回答

0

我会创建不同的部分视图每个方案,不是每个按钮设置。

这样,您可以根据您的业务需求管理视图。

在您的主视图模型中,存储“场景”,而不是“每个按钮的标志”。

E.g:

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

然后,如果你的 “ScenarioName” 的局部视图名称一致,您可以简单地这样做:

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

这样,你的控制器/视图模型保持非常干净。

当然,这一切都取决于你的“条件”和业务规则。

0

没有太多了解您的情况(如是否这些已知条件,或者如果条件是基于用户行为),这是我将开始:

我会开始一个视图模型:

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

而且把逻辑在控制器的条件:

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

WPF使用的命令,它允许你指定一个CanExecute事件ŧ o每个命令。通过http://msdn.microsoft.com/en-us/library/ms752308.aspx了解更多信息。

我会避免使用具有许多嵌套条件的单个大函数,因为这些变得无法阅读。

+1

我不确定WPF会帮助MVC网站。 – jfar 2010-11-17 04:35:33