Я новичок в MVC, и когда я создавал свои классы моделей для первого подхода к коду, для каждого столбца идентификатора ключа был установлен атрибут [ScaffoldColumn(false)]
. Я сделал это, потому что не хотел, чтобы идентификатор отображался в представлениях, и я знаю, что для решения этой проблемы будет удаление HTML-кода, сгенерированного пользовательским интерфейсом, в каждом представлении, содержащем поле идентификатора.
Проблема, с которой я столкнулся при использовании ScaffoldColumn
со значением false
в моделях, впервые была обнаружена, когда метод редактирования для представления был запущен, и я получил эту ошибку :Сохранить обновление, вставить или удалить оператор повлиял на неожиданное количество строк (0 ). Когда я запустил код в режиме отладки, свойство ID фактически было установлено равным нулю, как указано в моем методе View Edit HttpPost
.
Мой вопрос, который, я надеюсь, кто-то может уточнить, заключается в том, какой смысл иметь такой атрибут, как ScaffoldColumn
в MVC, если идентификатор не отправляется методу контроллера (s ), как в этом случае Редактировать HttpPost
? Должен ли я просто пойти по старинке и удалить разметку HTML в каждом представлении, созданном храмами MVC, сгенерированными, когда этот атрибут не добавлен в свойства ключа/внешнего ключа?
Обходной путь, который я нашел, если вы установили для этого атрибута значение false
, заключался в добавлении параметра ID к каждому методу HttpPost
и установке соответствующего поля свойства ID перед вызовом SaveChanges()
.