快速业务通道

让ASP.NET使用MsgBox方法

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-04-12

使用 VB6 或 VB.NET 的开发人员,一定常会使用到 MsgBox 这个函式来显示讯息,如果使用 VB.NET 在开发 ASP.NET 程序,会发现似乎 MsgBox 这个函式好像可以使用,就直接使用 MsgBox 来显示讯息。

MsgBox("这是讯息")

在 VS 开发环境中执行程序,MsgBox 函式好像也可以正常显示讯息;可是一旦网站发布出去后,就会发现 MsgBox 函式失效了。这是什么原因呢?MsgBox 函式是伺服端的语言,而客户端只能透过浏览器解析 HTML 及 JavaScript,所以 MsgBox 函式是无法使用在 ASP.NET 的程序,只能在开发侦错时使用。在 ASP.NET 中,要在客户端显示讯息正确的方法是要使用 RegisterStartupScript 方法来输出 JavaScript 的 alert 函式。

ScriptManager.RegisterStartupScript(MeMe.GetType(), "alert""alert(''这是讯息'')"True)    
 
或    
   
Me.ClientScript.RegisterStartupScript(Me.GetType(), "alert""alert(''这是讯息'')"True)

是不是觉得在 ASP.NET 中要显示讯息麻烦多了,能否让 ASP.NET 中也可以使用 MsgBox 来显示讯息呢?其实方法很简单,就是自己写一个 MsgBox 方法就好了,就可以延用以前习惯的 MsgBox 来显示讯息。我们在 BasePage 中撰写 MsgBox 方法,这个 MsgBox 方法还处理消息正文中含「单引号」及「换行」的部分,将这些特殊字符串转换为对应的 JavaScript 跳脱字符。

    '''''' <summary>
    
'''''' 弹出提示讯息。
    
'''''' </summary>
    
'''''' <param name="Message">消息正文。</param>
    Public Sub MsgBox(ByVal Message As String)
        
Dim sScript As String
        
Dim sMessage As String

        sMessage 
= Strings.Replace(Message, "''""\''"''处理单引号
        sMessage = Strings.Replace(sMessage, vbNewLine, "\n"''处理换行
        sScript = String.Format("alert(''{0}'');", sMessage)
        ScriptManager.RegisterStartupScript(
MeMe.GetType(), "alert", sScript, True)
    
End Sub

所有继承 BasePage 的页面都可以使用 MsgBox 方法来显示讯息。

    Protected Sub Button1_Click(ByVal sender As ObjectByVal e As System.EventArgs) Handles Button1.Click
        
Dim sMessage As String

        sMessage 
= "alert 讯息换行测试" & vbNewLine & "测试''单引号'' "
        
MsgBox(sMessage)
    
End Sub

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号