部分视图和条件渲染Mvc4

时间:2013-03-06 10:44:38

标签: c# asp.net-mvc razor refactoring partial-views

我已经开始重构一些项目,并且我遇到了一些代码,由于代码重复似乎写错了,但是我不知道如何在最好的maneer中重构这个问题。对于cource我可以通过提取函数和清理一些代码来删除代码重复,使用泛型,但我想也许我可以做更多。故事是:

我们有一个页面(视图),即根据用户选择呈现多个部分视图: 我们有一些链接,如:

  @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>

每次点击都会以这种方式呈现局部视图 - &gt; 控制器:

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

这是为每个链接创建的,然后在Page的视图中,以下条件呈现是:

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

}

在我的情况下是否有一些最佳实践(根据用户选择呈现不同的部分视图),或者只是删除代码重复?

由于

1 个答案:

答案 0 :(得分:1)

您发布的代码没有任何问题,条件渲染在MVC中很常见。我所做的唯一更改是将您的if语句转换为switch,只是稍微整理一下(假设您有ifelse if,多个模型值的else if等。)