我已经开始重构一些项目,并且我遇到了一些代码,由于代码重复似乎写错了,但是我不知道如何在最好的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
}
在我的情况下是否有一些最佳实践(根据用户选择呈现不同的部分视图),或者只是删除代码重复?
由于
答案 0 :(得分:1)
您发布的代码没有任何问题,条件渲染在MVC中很常见。我所做的唯一更改是将您的if
语句转换为switch
,只是稍微整理一下(假设您有if
,else if
,多个模型值的else if
等。)