Я использую MVC 3 (RAZOR) для своего веб-приложения.MVC 3 HiddenField not render base 64 data
У меня есть простой вид «редактирования», который касается записи сотрудника (например, имя, фамилия, ДОБ и т. Д.), Но некоторые данные чувствительны и зашифрованы. Чувствительные данные зашифровываются и преобразуются в базовую строку. Чувствительные данные не редактируются в представлении редактирования, но передаются в скрытое поле, чтобы «сохранить его», чтобы он не потерялся в обратной передаче, если необходимо изменить другие поля в записи сотрудника.
Я думаю, что, поскольку эти данные являются базовыми 64, они не будут отображаться в скрытом поле - возможно, это вещь безопасности MVC 3. Я также должен отметить, что это свойство отмечено как обязательное для моей модели. Поэтому он должен быть повторно заполнен, чтобы отправить сообщение обратно.
Есть ли специальный атрибут, который мне нужно включить в это свойство, чтобы сообщить MVC, что его можно использовать в скрытом поле? Любые другие идеи?
В RAZOR, мое скрытое объявление поля выглядит следующим образом:
@Html.HiddenFor(model => model.SomeBase64String)
В HTML, он визуализируется как таковые:
<input style="margin-right: 5px;" id="SomeBase64String" name="SomeBase64String" value="" type="hidden" data-val="true" data-val-required="SomeBase64String is required.">
Пример строки база 64 может быть:
OW0iSdFXUqaUT82qjqaG5w==
Внутри контроллера контроллера (GET) у меня есть следующее:
public ActionResult Edit(int id)
{
Employee employee;
if (id == 0)
{
employee = Employee.CreateNew();
}
else
{
employee = _employeeDatabaseAccess.GetEmployeeById(id);
//employee.SomeBase64String is already set. it's stored in the db...
}
return View(employee);
}
Это. model.SomeBase64String устанавливается правильно, прежде чем он будет передан в представление. –
Следует также упомянуть, что если я установил точку останова на последней строке в ваших операторах и установил значение более дружественное значение. Он отлично выглядит. –
Если задано 'model.SomeBase64String', это должно сработать. Убедитесь, что это свойство имеет строку типа. Нет никакой причины, чтобы хелпер 'Html.HiddenFor' отображал простые строки, но пропускал более сложные строки. –