Доступ к DOM из application_error
У меня есть собственный обработчик ошибок для сайта asp.net.
void Application_Error(object sender, EventArgs e)
{
// Code that runs when an unhandled error occurs
//if (System.Configuration.ConfigurationManager.AppSettings["ProductionMode"] == "Yes")
#if (!DEBUG)
Server.Transfer("~\\GlobalExceptionHandler.aspx");
#endif
}
Он работает нормально и при поиске информации об исключениях, потому что это просто зацепит Server.getLastException()
и напишите мне на отзыв
Тем не менее, у меня есть некоторые текстовые поля на странице, и я хотел бы отправить значение этих текстовых полей вместе с электронной почтой. Может быть, это не совсем DOM, к которому я ищу доступ, а вместо этих опубликованных переменных.
Я пытался смотреть на HttpContext.Current.Request.Form
но он не показал ключей.
Так кто-нибудь знает, как получить доступ к значениям формы при глобальном обнаружении исключения?
1 ответ
Доступ к значениям формы
Для доступа к значениям формы в Global.Application_Error
Вы можете просто использовать HttpContext.Current.Request.Form
,
Вот подтверждение концепции, где страница немедленно выдает исключение на post(назад), чтобы попасть в обработчик ошибок приложения:
void Application_Error(object sender, EventArgs e)
{
var test = HttpContext.Current.Request.Form;
}
Установка точки останова в назначении test
, затем переступая через него (с F10), когда он ударил, вы можете увидеть, что test
действительно установлен в коллекцию значений формы post(back).
Доступ к значениям контроля обратной передачи
Кроме того, вы можете получить доступ к значениям элемента управления обратной передачей, добавив их в сеанс обратной передачи, например...
// ************code behind
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
Session["TextBox1"] = TextBox1.Text;
}
... и доступ к сеансу в обработчике ошибок приложения, например:
// ************Global.asax.cs
protected void Application_Error(object sender, EventArgs e)
{
// Use Session["TextBox1"].
}
Поток CodeVerge говорит, чтобы подходить хорошо - особенно ответ Бенсона Ю.