4

通常,在允许会员资格的网站中,您希望为您的用户提供一些仅在他们登录时才可见的数据。

对于我的网站,如果登录用户是数据所有者,我想提供一些工具让他们管理数据。

我的问题是这个。您是否将这项职责分为两种不同的观点?为“普通”用户加载的一个视图,为“所有者”用户加载的另一个视图。普通用户看到的视图只是显示数据。所有者会看到数据和一些管理数据的工具。

或者,您是否在单个视图中执行检查并在其中隐藏/显示块(类似于您在常规 ASP.NET 中所做的)?

这可能是出于偏好,但是在两个视图和单个视图之间划分职责是否有任何技术原因?

4

4 回答 4

5

我也会选择单一视图选项。将在您的视图数据上提供特定属性以指示要做什么。

<% if (Model.IsOwner) { %>
    //Html for owner
<% } %>
于 2009-03-31T05:03:23.980 回答
1

我个人会选择单一视图选项。这样您就不必重复将出现在两个视图中的代码。

从技术上讲(或关于 MVC 模式)我想不出任何理由来拆分它。

于 2009-03-31T04:26:24.910 回答
0

我倾向于将视图拆分为多个视图,因为理想情况下您希望避免视图中的条件逻辑(阅读:理想情况下)。

如果您发现这会导致您的视图之间出现一些重复,那么您很可能可以将重复的内容移动到共享部分中。

于 2009-04-03T10:28:42.157 回答
0

我通常会在部分渲染额外的内容,在渲染之前在部分检查角色中使用条件逻辑:

<%-- Master Page --%>
<% Html.RenderPartial("DataOwnerStuff"); %>

<%-- Partial --%>
<% if(Roles.IsUserInRole("DataOwner")) { %>
    <h1>Hi Data Owner!</h1>
<% } %>
于 2012-10-10T07:41:57.427 回答