У меня есть собственное исключение, основанное на каком-то определенном состоянии, и вы хотите повысить оповещение, когда элемент управления входит в этот блок catch
catch (ApplicationException ex)
{
//want to call window.alert function here
}
У меня есть собственное исключение, основанное на каком-то определенном состоянии, и вы хотите повысить оповещение, когда элемент управления входит в этот блок catch
catch (ApplicationException ex)
{
//want to call window.alert function here
}
Вы имеете в виду окно с сообщениями?
MessageBox.Show("Error Message", "Error Title", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
Дополнительная информация здесь: http://msdn.microsoft.com/en-us/library/system.windows.forms.messagebox(v=VS.100).aspx
Немного сложно дать окончательный ответ без дополнительной информации, но обычным способом является регистрация запуска script:
try
{
...
}
catch(ApplicationException ex){
Page.ClientScript.RegisterStartupScript(this.GetType(),"ErrorAlert","alert('Some text here - maybe ex.Message');",true);
}
если вы используете ajax на своей странице, для которой требуется script manager Page.ClientScript
не будет работать,
Попробуйте это, и он выполнит работу:
ScriptManager.RegisterClientScriptBlock(this, GetType(),
"alertMessage", @"alert('your Message ')", true);
Вы можете использовать следующий метод расширения с любой веб-страницы или вложенного пользовательского элемента управления:
static class Extensions
{
public static void ShowAlert(this Control control, string message)
{
if (!control.Page.ClientScript.IsClientScriptBlockRegistered("PopupScript"))
{
var script = String.Format("<script type='text/javascript' language='javascript'>alert('{0}')</script>", message);
control.Page.ClientScript.RegisterClientScriptBlock(control.Page.GetType(), "PopupScript", script);
}
}
}
следующий путь:
class YourPage : Page
{
private void YourMethod()
{
try
{
// do stuff
}
catch(Exception ex)
{
this.ShowAlert(ex.Message);
}
}
}
MessageBox, как и другие, или RegisterClientScriptBlock, если вы хотите что-то более произвольное, но ваш прецедент крайне сомнительный. Простое отображение исключений - это не то, что вы хотите сделать в производственном коде - вы не хотите публично публиковать эту деталь, и вы хотите записать ее с надлежащим протоколированием в частном порядке.
Вы также можете сделать это:
catch (Exception ex)
{
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "showError",
"alert('" + ex.Message + "');", true);
}
это покажет сообщение exeption в поле предупреждения
Я не уверен, понимаю ли я, но я предполагаю, что вы пытаетесь показать MessageBox из ASP.Net?
Если это так, эта статья проекта кода может быть полезна: Простая функциональность MessageBox в ASP.NET