2013-03-06 19 views
1

我已經開始重構一些項目,並且我遇到了一些由於代碼重複而似乎寫錯的代碼,但是我不知道如何在最好的maneer中重構這個問題。我可以通過提取函數和使用泛型來清除一些代碼來刪除代碼重複,但我想也許我可以做的比這更多。這個故事是:部分視圖和有條件呈現Mvc4

我們有一個頁面(view),這是根據用戶的choise渲染多個部分觀點: 我們有一些linkes這樣的:

@Html.ActionLink("Create", "SetCreateNewMessageView")</br> 
        @Html.ActionLink("GetMessagesHistory", "SetGetMessagesHistoryView")</br> 
        @Html.ActionLink("UpdateMessageStatus", "SetUpdateMessageStatusView")</br> 
        @Html.ActionLink("AddUser", "SetAddUserView")</br> 
        @Html.ActionLink("RemoveUser", "SetRemoveUserView")</br> 

每點擊一次呈現局部視圖以這種方式 - > 控制器:

var containModel = new CreatorsViewModel(); 
     containModel.CreateNewMessage = model; 
     **containModel.view = 1;** 
     return View("Index", containModel); 

,這就是由每個鏈接,然後在頁面的瀏覽以下條件呈現爲:

@if (Model.view == 1) 
        { // Render Partial view 

}

有沒有在我的情況下,一些最佳實踐(可根據用戶的choise呈現不同的局部視圖),或者這將是enogh只是刪除代碼重複?

感謝

+0

而不是嘗試使用枚舉,休息對我來說很好 – Satpal 2013-03-06 11:05:02

回答

1

沒有什麼錯,你發佈的代碼,條件呈現在MVC常見的事。我做的唯一的改變是將你的if語句轉換爲switch,只是爲了整理一些東西(假設你有if,else if,else if等多個模型值)。