MessageBox.Show () не работает в ASP.NET - PullRequest
2 голосов
/ 02 августа 2011

Я пытаюсь отобразить некоторый текст, используя MessageBox.Show, как показано ниже в событии page_load в ASP.NET. Прежде чем кто-либо поспешно расскажет о том, почему я использую его в ASP.NET, я использую его для отладки только на моем собственном устройстве dev для особых нужд. В приложении есть ссылка на System.Windows.Forms.

Я использовал его несколько лет назад, так что я знаю, что MessageBox WinForm работает. Я использую .NET 4.0 и VS 2010. Я не думаю, что что-либо, связанное с этой функцией, изменилось.

MessageBox.Show("Message", "Caption", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); //used also ServiceNotification option

Есть идеи, почему окно сообщения не отображается? У меня есть только эта строка в коде.

Сложение:

Я ОЧЕНЬ осведомлен о последствиях для окна сообщений. Это временная вещь только для отладки. Линия не пойдет в производство. У меня нет доступа к JavaScript. Пожалуйста, подумайте, почему это не работает, а не почему я не должен его использовать. Я использовал его раньше в 2.0, и он работает. Я хочу знать, изменил ли новый .NET что-то или я неправильно использовал эту опцию.

Прямой ответ : работает на веб-сервере Visual Studio, а не в IIS.

Ответы [ 3 ]

5 голосов
/ 02 августа 2011

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

1 голос
/ 02 августа 2011

@ Тони, если вы добавите System.Winform.dll в свою ссылку, вы сможете вызвать сообщение box.show на компьютере разработчика.Но когда вы развернете его на каком-либо сервере, он не будет работать.Таким образом, в качестве альтернативы, вам нужно использовать предупреждения JavaScript.Для этого вы можете использовать это

 private void ShowMessage(string message)     
   {
      ScriptManager.RegisterClientScriptBlock(control, GetType(),"key","string.format("alert('{0}');",message),true);
   }
0 голосов
/ 02 августа 2011

Вернувшись в .Net 2.0 дней, вы могли бы сделать это, включив system.windows (я думаю) в свой оператор использования.

Тогда в методе это будет system.windows.forms.Messagebox.show ("foo");

Я не позволю себе сказать, что "ты делаешь это неправильно" ...

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

Предупреждение () лучше, а console.log () еще лучше.

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