2015-11-07 40 views
0

調用的「Sweet Alert」在我的應用程序中,我發佈了javascript後臺提示Sweet Alerts來自VB.Net代碼,在各種頁面加載和事件中。我可以得到基本的警告射擊沒有問題如下圖所示:Javascript alert提示從VB.Net調用

Dim script As String = String.Format("swal('Welcome , " + Username + "');") 

ScriptManager.RegisterClientScriptBlock(Page, GetType(System.Web.UI.Page), "redirect", script, True) 

還有其他可用的警報,其中涉及添加對象警報的引號內:

swal({ 
     title: "Sweet!", 
     text: "Here's a custom image.", 
     imageUrl: "images/thumbs-up.jpg" 
    }); 

所以我的問題是,當我想在我後面的代碼使用,即時通訊有問題知道去哪裏在適當的地方加上引號,對象似乎導致語法錯誤

Dim script As String = String.Formatswal({ title: "Sweet!", text: "Here's a custom image.", imageUrl: "images/thumbs-up.jpg" }); 

ScriptManager.RegisterClientScriptBlock(Page, GetType(System.Web.UI.Page), "redirect", script, True) 

enter image description here

回答

1

逃脫他們從VB.NET/server-side包括在字符串中雙引號透視,沒有一個JavaScript是代碼,它只是一個字符串在響應中發射。因此,要啓動,給的String.Format()都必須在VB.NET字符串,用雙引號:

Dim script As String = "just a string to VB"; 

從那裏,你只是試圖讓字符串的內容是完全相同客戶端上有效的JavaScript需要什麼。有兩種方法來處理:

任何地方你需要的引號(「)將字符串,用雙引號代替(」「)內:

Dim script As String = "<script>swal({title:""Sweet!"", text:""Here's a custom image."", imageUrl:""images/thumbs-up.jpg""});</script>" 

OR,第二種方式:JavaScript允許使用無論是單引號(')還是雙引號(「)。由於VB.NET不考慮單引號特殊字符,只需用單引號替換所有你的JavaScript雙引號:

Dim script As String = "<script>swal({title:'Sweet!', text:'Here's a custom image.', imageUrl:'images/thumbs-up.jpg'});</script>" 

最後的String.Format是用來方便的插入變量值到您的字符串。它使用{0} {1} {2}等作爲替代值。然後,您將變量作爲附加參數傳遞。這就是爲什麼你必須逃避{}字符。這裏有一個例子:

Dim script As String = String.Format("<script>swal({{title:'{0}', text:'{1}', imageUrl:'{2}'}});</script>", strTitle, strText, strImageUrl) 
+0

非常感謝您的幫助,但我已經嘗試了這兩種技術,並且都有編譯錯誤「輸入字符串格式不正確」。 – Johnn5er

+0

現在嘗試沒有String.Format ... –

1

它包含只是一個簡單的情況下字符串連接的報價

Dim script As String = "<script type='text/javascript'>swal({ title: ""Sweet!"", text: ""Here's a custom image."", imageUrl: ""images/thumbs-up.jpg"" });</script>" 

您可以用另一雙引號

+0

感謝您的答覆,但我想的是,它GVE我編譯錯誤:System.FormatException:輸入字符串的不正確的格式。 – Johnn5er

+0

嘗試使用它沒有String.Format。只是簡單的字符串分配。 – haraman

+1

是的,擺脫String.Format,因爲{}被它使用。您必須使用{{和}}進行轉義。只需做簡單的字符串分配。我會編輯我的答案以反映這一點。 –