-1

Класс User.cs, свойство user_id. Если я удалю EditFor для user_id из View, user_id будет null после того, как Edit View опубликует результаты обратно на контроллер.ASP.NET MVC 4 - идентификатор модели имеет значение null, если в представлении не содержится editorfor для id

Как сохранить значение user_id после загрузки Edit View, если я не помещаю EditorFor в представление для этого поля? В этом случае действие «Правка» возвращает ошибку с нулевой ссылкой. Я хочу как-то сохранить значение user_id перед загрузкой представления, а затем независимо от того, что введено в представлении, я хочу восстановить это значение user_id из ранее сохраненного места и обновить запись базы данных по этому идентификатору.

Проблема в том, что MVC не хочет видеть что-либо в представлении, кроме EditorFor.

DisplayFor, TextBoxFor не принимаются, все дают null в результате. HiddenFor не является выбором, потому что он все еще загружает id на страницу. EditorFor не может быть установлен только для чтения. Поэтому я хочу удалить его вообще, но как-то сохранить user_id в модели.

EDIT

Похоже TempData не является безопасным местом. Можно ли сделать производный класс с некоторыми дополнительными свойствами, где id можно зарезервировать на некоторое время? Idk о классах слишком много

+0

«DisplayFor, TextBosFor, HiddenFor и т. Д. Не принимаются, все дают нуль в результате». Можете ли вы расширить это? Вы говорите, что вы поместили HiddenFor в ту же форму, но его значение не анализируется при последующем ударе? – esmoore68

+1

Это намерение HiddenFor. Покажите свою модель и просмотрите. –

+0

нет, извините, скрытый работает. Я имею в виду, что все эти вещи не подходят моей идее по разным причинам, я не хочу использовать что-либо из этого, я просто хочу оставить id от View – SWA

ответ

1

Если вы не хотите этого в представлении, используйте TempData для передачи его через действия. Я не вижу ваш код, поэтому я не могу показать вам.

+1

Это должно сделать трюк –

+0

@SteveGreene Обновлено –

+0

есть некоторая ошибка, если я передаю его в параметрах формы, что-то о том, что BeginForm не находится в классе пользователя – SWA

Смежные вопросы