mvc3 .net - Есть ли способ полностью скрыть скрытое поле в представлении? - PullRequest
0 голосов
/ 09 января 2012

Я могу использовать: @ Html.HiddenFor, чтобы скрыть поле в форме, однако, вы все равно можете увидеть значение скрытого поля, используя «просмотр источника».

Есть ли способ в MVC3 также скрыть скрытое поле в источнике представления - я хочу полностью скрыть первичный ключ от пользователя, но все же передать его из представления в контроллер через модель при публикации формы .

Любой фрагмент кода или ссылка на пример приветствуется. Спасибо

Ответы [ 3 ]

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

Ну, проще говоря нет.Если вы намереваетесь отправить ключ через форму, невозможно спрятать данные из источника.

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

0 голосов
/ 10 января 2012

Если вам нужно хранить информацию по нескольким запросам, то используйте коллекцию TempData на стороне сервера, поскольку она поддерживается сеансом, но предназначена именно для кратковременного хранения информации.В качестве альтернативы, если вы должны передать данные клиенту через скрытый или другой html-файл с нулевой высотой, то зашифруйте их с помощью симметричного шифрования или, по крайней мере, кодировки base64 (очень плохой подход, чтобы держать их подальше от любопытных глаз).

0 голосов
/ 09 января 2012

Нельзя скрыть поле от источника.

Но в определенных ситуациях вы можете попытаться сделать что-то еще, например, не передавая идентификатор в представление. Держите это на стороне диспетчера, и используйте это при отправке формы. Конечно, вы должны быть осторожны с этим, но это возможно с TempData или ViewData. Вот подсказка http://haacked.com/archive/2007/12/21/asp.net-mvc-helpers-for-repopulating-a-form.aspx

...