四个按钮和一堆条件

时间:2010-11-17 03:56:47

标签: c# asp.net-mvc

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

不像思考过程那样寻找特定的解决方案,也不是简单的方法。

谢谢, 杆

3 个答案:

答案 0 :(得分:0)

在不了解您的情况的情况下(例如这些是否已知条件,或条件是否基于用户的操作),这就是我要开始的地方:

我将从ViewModel开始:

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;
}

答案 1 :(得分:0)

WPF使用命令,允许您为每个命令分配CanExecute事件。在http://msdn.microsoft.com/en-us/library/ms752308.aspx了解更多信息。

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

答案 2 :(得分:0)

我会为每个场景创建不同的部分视图,而不是每个按钮集。

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

在主ViewModel中,存储“方案”,而不是“每个按钮的标志”。

E.g:

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

然后,如果您的“ScenarioName”与部分视图名称匹配,则可以执行以下操作:

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

这样你的控制器/视图模型就会非常干净。

当然,这完全取决于您的“条件”和业务规则。