Невозможно отобразить окно сообщения на сервере dev в asp.net - PullRequest
1 голос
/ 07 октября 2011

У меня есть блок кода, который должен отображать окно сообщения в стиле Windows для пользователя в моем приложении asp.net.

Пользователь выполняет действие на странице asp.net, затем эта страница обрабатывает данные на другой странице aspx. На второй странице aspx должен отображаться код окна сообщения.

Ящик отображается на моей локальной машине, а другой разработчик на локальной машине. Но сервер разработки не отображает его. Ничего в журнале ошибок тоже нет.

Код

Page1.aspx

                Dim strString As String = SysUtility.CheckRecord(Session("UserID"), sPageType)
                If Mid(strString, 1, 6) = "ERROR:" Then MsgBox(strString, MsgBoxStyle.Critical)


Page2.aspx
function CheckRecord(strPage)
    .....
    .... database check to see if record is valid
    ....
    .... if invalid, return "Error: Invalid record"
    ....

end function

Как решить эту проблему (необходимо отобразить окно сообщения при переносе приложения на сервер разработки)

Ответы [ 4 ]

4 голосов
/ 07 октября 2011

MsgBox для WinForms. В ASP.NET у вас есть диалоговые окна Javascript alert и confirm и диалоговое окно jQuery UI. Вы также можете использовать ModalPopupExtender, включенный в AJAX Toolkit. Есть и другие решения, но они являются наиболее распространенными.

Самое простое решение - показать предупреждение, и вы можете сделать это следующим образом:

Page.ClientScript.RegisterStartupScript(GetType(), "ShowMessageScript", "alert('Hello World!');", true);
3 голосов
/ 07 октября 2011

Вы не можете выполнять вызовы win 32 api на клиентском компьютере из кода, запущенного на вашем веб-сервере IIS!

Настроить систему, в которой сообщения в стиле предупреждений отображаются на странице в сообщении типа предупреждения javascript onload,или, может быть, плагин в стиле jquery рычание.

1 голос
/ 07 октября 2011

Вы не сможете использовать MsgBox, так как это форма Windows.Есть несколько способов отображения подобного рода вещей в asp.net.

Если это просто для целей отслеживания (вы упоминаете "dev server"), тогда просто:

Response.write("Computer says no");

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

protected string _errorMessage = "";

назначить любое значение, которое вы хотите, при загрузке страницы, а затем слепокна самой странице;

<%= _errorMessage %>

вы можете разместить где угодно и использовать комбинацию html-элементов и местозаполнителя для разметки, как вам нравится.

Последней альтернативой будет добавление некоторого javascript на вашу страницу с использованием метода «alert», который будет выглядеть почти так же, как всплывающее окно с формами окон, но в целом они не являются хорошей практикой в ​​веб-дизайне.

0 голосов
/ 07 октября 2011

Это не может быть сделано так, как вы хотите, чтобы это было сделано.Если вы планируете выполнить что-то вроде MsgBox или MessageBox.Show в коде своего сервера, вам не повезет.Причина, по которой вы не можете этого сделать, заключается в том, что на сервере появляется модальное всплывающее окно, которое блокирует процесс, пока кто-нибудь на этом сервере не нажмет кнопку «ОК», «Отмена» или любую другую кнопку.Вам нужно сделать это на стороне клиента, вызвав функцию javascript alert().

...