Редактирование работает нормально, когда все объекты находятся в TextBox, иначе выдает ошибку - PullRequest
0 голосов
/ 07 июня 2011

Я использую MVC 3.0 с EF. У меня есть таблица, в которой есть столбец Identity с автоматическим приращением 1. Теперь я создал представление для редактирования, в котором только FirstName, LastName и ID будут в режиме ReadOnly.Теперь я изменил значение «Имя» и «Фамилия» и нажмите кнопку «Отправить», затем . Это выдаст мне ошибку :

Словарь параметров содержит пустую запись для параметра «colID», не являющегосяОбнуляемый тип «System.Int32» для метода «Редактирование System.Web.Mvc.ActionResult (Int32, CAFM.Business.Models.TabMasterViewModel)» в «CAFM.Web.Controllers.TabMasterController».Необязательный параметр должен быть ссылочным типом, обнуляемым типом или быть объявлен как необязательный параметр.Имя параметра: параметры

Если я установил для ID из RedaOnly значение Правка

@Html.DisplayFor(model => model.ID)

, равное

@Html.EditorFor(model => model.ID) 

, то он работает отлично.

Пожалуйста, предоставьте ваши ценные предложения!

Спасибо, Imdadhusen

1 Ответ

3 голосов
/ 07 июня 2011

Это совершенно очевидно.Когда вы отправляете изменения обратно на сервер, он не публикует Id, потому что Id отсутствует в каком-либо элементе управления HTML - это просто текст.Из-за этого вы не можете создать действительную сущность для сохранения.Вы всегда должны публиковать Id обратно (например, в скрытом поле) и иметь некоторую проверку того, что Id не был изменен или что у пользователя все еще есть разрешения на изменение записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...