我有一个mvc应用程序,我的网页上有4个按钮。我需要根据一系列不同条件的工作流程启用/禁用每个按钮。管理这个最好的方法是什么?现在,差不多有30个条件和计数。四个按钮和一堆条件
没有真正寻找一个特定的解决方案,就像思考过程或保持简单的方法一样。
谢谢, 杆。
我有一个mvc应用程序,我的网页上有4个按钮。我需要根据一系列不同条件的工作流程启用/禁用每个按钮。管理这个最好的方法是什么?现在,差不多有30个条件和计数。四个按钮和一堆条件
没有真正寻找一个特定的解决方案,就像思考过程或保持简单的方法一样。
谢谢, 杆。
我会创建不同的部分视图每个方案,不是每个按钮设置。
这样,您可以根据您的业务需求管理视图。
在您的主视图模型中,存储“场景”,而不是“每个按钮的标志”。
E.g:
public ActionResult Index()
{
var viewModel = new ViewModel();
viewModel.ScenarioName = "Scenario1";
return View(viewModel);
}
然后,如果你的 “ScenarioName” 的局部视图名称一致,您可以简单地这样做:
<%: RenderPartial(Model.ScenarioName, Model.SomethingYouNeedForPartial) %>
这样,你的控制器/视图模型保持非常干净。
当然,这一切都取决于你的“条件”和业务规则。
没有太多了解您的情况(如是否这些已知条件,或者如果条件是基于用户行为),这是我将开始:
我会开始一个视图模型:
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;
}
WPF使用的命令,它允许你指定一个CanExecute事件ŧ o每个命令。通过http://msdn.microsoft.com/en-us/library/ms752308.aspx了解更多信息。
我会避免使用具有许多嵌套条件的单个大函数,因为这些变得无法阅读。
我不确定WPF会帮助MVC网站。 – jfar 2010-11-17 04:35:33
你现在有什么? – jfar 2010-11-17 04:36:01