我有一個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