讓 ASP.NET 也可以使用 MsgBox 方法

來源:互聯網
上載者:User

使用 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(Me, Me.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(Me, Me.GetType(), "alert", sScript, True)
    End Sub

 

所有繼承 BasePage 的頁面都可以使用 MsgBox 方法來顯示訊息。

 

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

        sMessage = "alert 訊息換行測試" & vbNewLine & "測試'單引號' "
        MsgBox(sMessage)
    End Sub

 

 

備註:處理 JavaScript 的相關函式,筆者比較建議使用「撰寫自用的 ScriptManager 來管理用戶端指令碼」一文中提供的方式來處理,所以可以將 MsgBox 方法撰寫在該文中的 TBScriptManager 類別。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.