2010-11-17 32 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