无法在asp.net中的dev服务器上显示消息框

时间:2011-10-07 13:23:58

标签: asp.net vb.net messagebox

我有一个代码块,应该在我的asp.net应用程序中向用户显示一个Windows样式消息框。

用户在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 个答案:

答案 0 :(得分:4)

MsgBox适用于WinForms。在ASP.NET中,您有Javascript alertconfirm对话框以及jQuery UI对话框。您还可以使用AJAX Toolkit中包含的ModalPopupExtender。还有其他解决方案,但这些是最常见的。

最简单的解决方案是显示警报,你可以这样做:

Page.ClientScript.RegisterStartupScript(GetType(), "ShowMessageScript", "alert('Hello World!');", true);

答案 1 :(得分:3)

您无法通过IIS Web服务器中运行的代码在客户端计算机上执行win 32 api调用!

设置一个系统,其中警报样式消息在onload javascript警报类型消息中呈现为页面,或者可能是jquery growl样式插件。

答案 2 :(得分:1)

你将无法使用MsgBox,因为这是一个Windows窗体。有几种方法可以在asp.net中显示类似的东西。

如果只是为了追踪目的(你提到“dev server”)那么就简单了;

Response.write("Computer says no");

会奏效。如果您需要它为用户设计好并且为其设置样式,则可以在代码中放置受保护的字符串...

protected string _errorMessage = "";

在页面加载时分配您想要的任何值,然后在页面本身上分配一个金块;

<%= _errorMessage %>

您可以放置​​在任何您想要的位置,并使用html元素和占位符的组合来标记它,无论您喜欢什么。

最后的替代方案是将一些javascript打到你的页面上,该页面使用“alert”方法,这看起来几乎就像一个Windows窗体弹出窗口,但通常它们不是网页设计中的好习惯。

答案 3 :(得分:0)

这不能以您希望的方式完成。如果您计划在服务器代码中执行MsgBoxMessageBox.Show之类的操作,那么您将失去运气。你无法做到这一点的原因是因为模式弹出框会出现在服务器上,并会阻止进程,直到该服务器上的某个人点击OK或Cancel,或任何按钮。您需要的是通过调用javascript alert()函数在客户端执行此操作。