我有一个asp.net-mvc网站,直到现在都没有权限限制,对所有人开放。许多页面都是详细的表单,包括文本框、下拉选择框等。
现在我需要更改这个网站,使得许多现有页面具有“权限”,只有特定的人才能编辑,其他人只能看到只读页面。我正在尝试弄清楚是否应该:
第二个选项实现起来会更快,但是看起来有些奇怪,因为它看起来像你可以编辑所有字段,但只是没有看到(或看到了禁用的)保存按钮。
第一个选项似乎更清晰,但我必须去为每个屏幕创建一个新视图,这似乎需要很多工作(目前有超过100个视图)。
这似乎是一个常见的情况,所以我想知道处理这种情况的最佳实践。显然,我正在寻找解决方案,但如果我从头开始,我也会对被认为是最佳实践或推荐解决方案的模式感兴趣。
现在我需要更改这个网站,使得许多现有页面具有“权限”,只有特定的人才能编辑,其他人只能看到只读页面。我正在尝试弄清楚是否应该:
Create a seperate view for everyone one of my existing views with forms that is just read only html on a page and redirect based on entitlements on the server side, something like
public ActionResult OrderView() { var isEntitled = Model.IsEntitled() if (isEntitled) { return("OrderEditableView", GetViewModel()); } else { return("OrderReadOnlyView", GetViewModel()); }
}
或者
- 重复使用同一个视图,并在屏幕上禁用或隐藏“保存”按钮。
在我的视图中有:
<% if (Model.IsEntitled) { %>
<button id="saveButton">Save Changes</button>
<% } %>
第二个选项实现起来会更快,但是看起来有些奇怪,因为它看起来像你可以编辑所有字段,但只是没有看到(或看到了禁用的)保存按钮。
第一个选项似乎更清晰,但我必须去为每个屏幕创建一个新视图,这似乎需要很多工作(目前有超过100个视图)。
这似乎是一个常见的情况,所以我想知道处理这种情况的最佳实践。显然,我正在寻找解决方案,但如果我从头开始,我也会对被认为是最佳实践或推荐解决方案的模式感兴趣。