Сохранение свойства модели - PullRequest
2 голосов
/ 27 января 2012

У меня есть представление, отрисовывающее модель, где модель изменена и отправлена ​​в действие Некоторые свойства модели остаются неизменными и просто должны быть переданы в представление. Например. Модель имеет свойства Цвет и название :

**View:**
Model.Name - used for for something.
Model.Color - not used, just needs to be preserved and passed on to action.

[HttpPost]
**Action:**
String Name = Model.Name
String Color = Model.Color

Я использую скрытое поле для этого?

Ответы [ 2 ]

1 голос
/ 27 января 2012

Да, но только если Color может отличаться для разных запросов и вам нужно value после публикации.

Другой способ - сохранить его в Session.

Более безопасный способ - сохранить его в сеансе, поскольку даже скрытыми полями можно манипулировать

Hidden

@Html.HiddenFor(x => x.Color)

Session

Session["YourKey"] = Color;
0 голосов
/ 27 января 2012

Я решил эту проблему с помощью конструкторов ViewModel, о которых я написал в блоге .Как говорит @dknaack, все, что приходит в запросе, может манипулироваться пользователями, поэтому, чтобы мои неизменяемые свойства модели сохранили правильные значения, я создал классы конструктора, которые просто перезаписывают не редактируемые значения соответствующими значениями избаза данных.На мой взгляд, это намного чище и безопаснее, чем использование скрытых полей.

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