Скажите пожалуйста, а зачем показывать пользователям «Чтение запрещено», если можно совсем не показывать? Это как показать конфетку, но не отдать.
Мне кажется, что лучше было бы создавать вьюхи где ненужные поля скрывались бы автоматически, либо специализированную View/PartialView для каждой роли.
Для каждой роли делать отдельное представление бывает не приемлемо, если ролей большое количество и у каждой своя область видимости. А сообщение выводить бывает нужно для того, чтобы отличать поля в которых ничего не введено, к примеру Null, от тех, которые явно скрыты.
Такое не подойдет при динамическом назначении прав чтения для пользователей. Как один из вариантов: это хранение в модели помимо самих полей, еще и модификаторов доступа можно/нельзя. На виде использовать самописный хелпер для чтения полей такой модели, дабы не переносить логику отображения напрямую во вьюху.
Такой подход может быть полезен при разработке корпоративных приложений. Когда множество сотрудников работают с одними и теме же данными. Но, в зависимости от занимаемой должности, доступ к информации может различаться.
Запрет чтения свойств модели в ASP.NET MVC