我有一个mvc应用程序,我的网页上有4个按钮。我需要根据一系列不同条件的工作流启用/禁用每个按钮。管理这个的最佳方法是什么?现在,有近30个条件和数量。
不像思考过程那样寻找特定的解决方案,也不是简单的方法。
谢谢, 杆
答案 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) %>
这样你的控制器/视图模型就会非常干净。
当然,这完全取决于您的“条件”和业务规则。