У меня есть веб-сайт asp.net-mvc, на котором до сих пор не было никаких прав, поскольку он был открыт для всех. Многие страницы представляют собой подробные формы с текстовыми полями, раскрывающимися списками выбора и т. д.
Теперь мне нужно изменить это, чтобы сделать многие из существующих страниц «имеющими право», чтобы только определенные люди имели возможность редактирования, а все остальные видели страницу только для чтения. Я пытаюсь понять, должен ли я
Создайте отдельное представление для каждого из моих существующих представлений с формами, которые только для чтения html на странице и перенаправляют на основе прав на стороне сервера, что-то вроде
public ActionResult OrderView() { var isEntitled = Model.IsEntitled() if (isEntitled) { return("OrderEditableView", GetViewModel()); } else { return("OrderReadOnlyView", GetViewModel()); }
}
or
- Повторно используйте тот же вид и просто отключите или скройте кнопку «Сохранить» на экране.
на мой взгляд есть
<% if (Model.IsEntitled) { %>
<button id="saveButton">Save Changes</button>
<% } %>
Второй вариант был бы намного быстрее в реализации, но был бы немного странным, потому что это выглядело бы так, как будто вы можете редактировать все поля, но просто не видите (или видите неактивную) кнопку «Сохранить» в форме.
Первый вариант кажется чище, но мне пришлось бы создать новое представление для каждого из моих экранов, и это кажется большой работой (в настоящее время более 100 представлений).
Это кажется распространенной ситуацией, поэтому я хотел посмотреть, есть ли передовой опыт решения этой ситуации. Очевидно, я ищу решение, учитывая текущую ситуацию, в которой я нахожусь, но мне также было бы интересно, есть ли шаблоны или решения, которые можно было бы считать передовой практикой или рекомендовать, если я начинаю с нуля.