带有“Sweet Alert”的Javascript警报从VB.Net代码后面调用

时间:2015-11-07 20:31:31

标签: javascript jquery asp.net vb.net

在我的应用程序中,我正在使用来自VB.Net代码的Sweet Alerts在各种页面加载和事件上发出javascript警报。我可以获得基本警报,没有问题,如下所示:

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

2 个答案:

答案 0 :(得分:1)

它只是包含引号的字符串连接的简单案例

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

您可以在字符串中包含双引号,方法是使用另一个双引号

来转义它们

答案 1 :(得分: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允许使用EITHER单引号(')或双引号(“)。由于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)