В MVC запросы обрабатываются механизмом связывания модели, когда клиент делает запрос. Если вы включаете модели в свои контроллеры, то, насколько я знаю, вам действительно нужно указать модель, к которой вы хотите привязаться, добавив префикс в качестве аргументов к имени модели (если только у вас нет только одного аргумента, который является моделью)
SomeModel_ID
Теперь в некоторых случаях вам может потребоваться исключить привязку к определенным свойствам, поскольку они представляют угрозу безопасности, которая, как вам кажется, вам нравится как концепция. Мы исключим ID для модели, чтобы любой клиентский запрос не публиковал это значение в виде простого текста.
Теперь, почему мы можем исключить всю модель? Ну, не все аргументы контроллера предварительно обрабатываются компоновщиком модели. Например, RedirectToAction не проходит через механизм связывания модели, поэтому в данном случае вполне возможно создать новую модель в действии контроллера POST и перенаправить на действие контроллера GET, передавая очищенную модель. Эта модель не может быть заполнена клиентом, но мы можем заполнить ее самостоятельно на стороне сервера.
Единственный раз, когда я связываюсь с моделью, это когда у меня есть модель вида и связанный редактор для этой модели. Это позволяет легко внедрить общий редактор на страницу и инкапсулировать эти свойства. Если вам нужно исключить привязку определенных свойств к объекту, я бы сказал, что вы делаете это неправильно.
Обновление
После ваших комментариев, я думаю, я понимаю, почему вы можете быть смущены. Исключитель привязки модели не позволяет клиенту когда-либо устанавливать свойство модели. Если вам нужно это свойство для обновления, вы просто не можете его исключить. Это означает, что пользователь потенциально может опубликовать любой идентификатор. В этом случае вы должны убедиться, что у пользователя есть разрешение на изменение любых объектов или записей базы данных, связанных с этим идентификатором, перед обслуживанием запрошенного обновления. Проверка аргументов - это ручной процесс . Вы можете использовать аннотации данных для проверки входных данных, но это вряд ли сильно поможет с правами доступа. Это то, что вы должны проверить вручную на каком-то этапе.