Каково реальное преимущество атрибута ScaffoldColumn, установленного в False в свойствах идентификатора модели MVC 3

Я новичок в MVC, и когда я создавал свои классы моделей для первого подхода к коду, для каждого столбца идентификатора ключа был установлен атрибут [ScaffoldColumn(false)]. Я сделал это, потому что не хотел, чтобы идентификатор отображался в представлениях, и я знаю, что для решения этой проблемы будет удаление HTML-кода, сгенерированного пользовательским интерфейсом, в каждом представлении, содержащем поле идентификатора.

Проблема, с которой я столкнулся при использовании ScaffoldColumnсо значением falseв моделях, впервые была обнаружена, когда метод редактирования для представления был запущен, и я получил эту ошибку :Сохранить обновление, вставить или удалить оператор повлиял на неожиданное количество строк (0 ). Когда я запустил код в режиме отладки, свойство ID фактически было установлено равным нулю, как указано в моем методе View Edit HttpPost.

Мой вопрос, который, я надеюсь, кто-то может уточнить, заключается в том, какой смысл иметь такой атрибут, как ScaffoldColumnв MVC, если идентификатор не отправляется методу контроллера (s ), как в этом случае Редактировать HttpPost? Должен ли я просто пойти по старинке и удалить разметку HTML в каждом представлении, созданном храмами MVC, сгенерированными, когда этот атрибут не добавлен в свойства ключа/внешнего ключа?

Обходной путь, который я нашел, если вы установили для этого атрибута значение false, заключался в добавлении параметра ID к каждому методу HttpPostи установке соответствующего поля свойства ID перед вызовом SaveChanges().

7
задан Akshay Soam 28 April 2015 в 14:52
поделиться