При нажатии пункта меню в моем меню элемент управления ASCX загружается через AJAX на моей панели asp. Для этого у меня есть метод:
public void LoadControl(ControlDestination controlDestination, string filename)
{
try
{
// Load control from file
Control control = LoadControl(filename);
// Check control extends BaseForm
// Do stuff
}
else
{
throw new Exception("Web User Control erft niet van BaseForm.");
}
}
catch (ArgumentNullException e)
{
// Implement
}
catch(HttpException e)
{
LoadControl(ControlDestination.Menu, "Error.ascx");
throw new Exception("User control niet gevonden: " + e.ToString());
}
}
Когда я устанавливаю точку останова на HttpException, я попадаю туда. Я нажимаю F11 и код в LoadControl выполняется. Затем выскакивает. Все это идет хорошо, но Error.ascx никогда не загружается. Я знаю, что метод работает, потому что когда я хочу загрузить другие объекты ASCX с помощью этого метода, он работает. Но когда я хочу загрузить Error.ascx, это идет не так.
Я могу увидеть Error.ascx, если я закомментирую команду throw new Exception ("Пользовательский контроль niet gevonden" + e.ToString ()); Я хочу, чтобы обе строки были выполнены.
EDIT:
На главной странице у меня есть этот javascript-код, чтобы перехватить некоторые исключения:
function pageLoad() {
var manager = Sys.WebForms.PageRequestManager.getInstance();
manager.add_endRequest(endRequest);
manager.add_beginRequest(beginRequest);
}
function endRequest(sender, args){
var Error = args.get_error();
if (Error != null) {
ToggleErrorOn(true);
document.getElementById("ErrorContent").innerHTML = Error.message;
args.set_errorHandled(true);
}
}