在我的应用程序中,我正在使用来自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)
答案 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)