-1

我正在尝试在 aspx 页面中使用 response.write 返回一个 javascript 函数。问题是我返回的函数有很多引号,它们与 repsonse.write 语法冲突。这是一个示例代码:

Response.Write("        If hello.StartsWith("H", StringComparison.InvariantCultureIgnoreCase) OrElse hello.StartsWith("W", System.StringComparison.InvariantCultureIgnoreCase) Then")

这给了我一个问题,因为里面的引号会提前切断响应。有一个更好的方法吗?

4

4 回答 4

0

不是最好的方法,RegisterClientScriptBlock更好,但如果您发出 JavaScript 而不是 VB.NET 代码,这将起作用:

Response.Write("<script>alert('test');</script>")

注意:如果您需要转义字符串,请在 Google 或此站点中进行简单搜索,就可以了。

于 2012-04-12T17:45:10.110 回答
0
Use chr(34) for quote as shown below to create a string of js function: 

sJavaScript = sJavaScript & vbTab & vbTab & "if(TheForm."
sJavaScript = sJavaScript & "FieldName" & ".value == " & Chr(34) & Chr(34)
sJavaScript = sJavaScript & ")" & vbCrLf & vbTab & vbTab & vbTab & "{" & vbCrLf
于 2012-04-12T17:54:58.463 回答
0

如果您输出的函数是 javascript,那么一种方法是使用单引号。从 javascript 的角度来看,单引号和双引号对于字符串文字或多或少是可以互换的(尽管我确信在某些情况下这不是真的——我只是不太了解 javascript,无法说出它们是什么)。

Response.Write("        If hello.StartsWith('H', ...
于 2012-04-12T17:55:09.137 回答
0

您可以在您的 javascript 中用单 qoute 替换双 qoute ,就像在 javascript 中一样 " 和 ' 做同样的事情,c# 不会反对单 qoute 但 RegisterClientScriptBlock 可能是最好的选择。

于 2012-04-12T18:01:45.630 回答