【问题标题】:Partial views and Conditional rendering Mvc4局部视图和条件渲染 Mvc4
【发布时间】:2013-03-06 10:44:38
【问题描述】:

我已经开始重构一些项目,并且由于代码重复,我遇到了一些似乎写错的代码,但是我不知道如何以最佳方式重构它。当然,我可以通过提取函数和清理一些代码,使用泛型来删除代码重复,但我想也许我可以做的不止这些。故事是:

我们有一个页面(view),即根据用户选择渲染多个局部视图: 我们有一些链接,例如:

  @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

}

在我的案例中是否有一些最佳实践(根据用户选择呈现不同的局部视图)或者仅删除代码重复就足够了?

谢谢

【问题讨论】:

  • 与其尝试使用枚举,不如休息一下

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多