视图中的逻辑或多个视图asp .net MVC

时间:2011-11-13 23:31:10

标签: asp.net asp.net-mvc

我刚开始使用MVC,从Web表单转移。

让我们举个例子:

我有一个页面,其中显示了包含名字,姓氏,公司,电话,电子邮件地址等属性的联系人列表。

在该页面上,用户角色确定他们是否可以查看特定列。因此,管理员可以看到电话和姓名,而基本用户只能看到公司,地址和其他一些人。

您是将该逻辑投入视图还是让控制器执行逻辑并使用其他视图?

在我看来,制作控制器是最好的,但观点可以重新获得。

感谢您的帮助,试图将我的前提包裹起来。

(欢迎任何好书推荐,试着读一些。)

1 个答案:

答案 0 :(得分:1)

我有两个FormViewModel。

第一个包含管理员可以看到的列,第二个包含基本用户可以看到的列。

我实现了一个接口并将其用作视图的模型。

然后在控制器中,我将依次返回一个或另一个。

您可以考虑为每种类型的用户使用部分视图,然后简单地使用

<% if (user.isAdmin){ %>
  <% Html.RenderPartial("Admin", model); %>
<%} else {%>
  <% Html.RenderPartial("BasicUser", model); %>
<%}%>

另一种方法是让视图执行此操作,您可以创建一个帮助程序类来检查用户是否是管理员

<% if (user.isAdmin){ %>
  //Column for admin
<%}%>