HandleError со строго типизированным частичным представлением - PullRequest
0 голосов
/ 03 апреля 2009

Сегодня утром я столкнулся с небольшим блокпостом с HandleError. Пользователи правильно направлены на /Views/Shared/Error.aspx. В этом представлении используется мастер-страница, которая также хорошо отображается. Он также регистрирует особенности ViewData.Model.Exception в своем методе Page_Load. На мой взгляд, приемлемое использование кода.

Моя проблема заключается в следующем: страница содержит строго типизированное частичное представление, содержащее некоторые входные данные пользователя. Я хотел бы сохранить доступ к этим данным даже после того, как возникло исключение, чтобы пользователь не подвергался двойному наказанию за наше исключение (при появлении сообщения об ошибке и потере значений формы).

Есть ли способ сделать это, используя HandleError или другой атрибут многократного использования?

Ответы [ 2 ]

0 голосов
/ 26 июля 2009

Самое простое решение - кнопка "назад", и для нее не требуется код: -)

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

Error.aspx - это страница с общей ошибкой и ваше последнее средство. Эта страница даже не должна пытаться выполнить какую-либо задачу, кроме общей обработки ошибок.

0 голосов
/ 03 апреля 2009

Способ решения этой проблемы - использовать Ajax.BeginForm(){} и визуализировать пользовательский элемент управления таким образом, чтобы ваше представление не обновлялось и ваш ввод не терялся. Если ваши сообщения об ошибках строго ограничены, то вы также можете использовать jquery.validate.js файл, который можно найти здесь http://randomactsofcoding.blogspot.com/2008/09/starting-with-jquery-validation-plug-in.html

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