我有一个代码块,应该在我的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
如何解决此问题(将应用迁移到开发服务器时需要显示消息框)
答案 0 :(得分:4)
MsgBox适用于WinForms。在ASP.NET中,您有Javascript alert
和confirm
对话框以及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)
这不能以您希望的方式完成。如果您计划在服务器代码中执行MsgBox
或MessageBox.Show
之类的操作,那么您将失去运气。你无法做到这一点的原因是因为模式弹出框会出现在服务器上,并会阻止进程,直到该服务器上的某个人点击OK或Cancel,或任何按钮。您需要的是通过调用javascript alert()
函数在客户端执行此操作。