Javascript 通过Response.Write()写回函数

Javascript 通过Response.Write()写回函数,javascript,asp.net,vb.net,Javascript,Asp.net,Vb.net,我试图在aspx页面中使用response.write返回javascript函数。问题是我返回的函数有很多引号,它们与repsonse.write语法冲突。下面是一个示例代码: Response.Write(" If hello.StartsWith("H", StringComparison.InvariantCultureIgnoreCase) OrElse hello.StartsWith("W", System.StringComparison.InvariantCult

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

Response.Write("        If hello.StartsWith("H", StringComparison.InvariantCultureIgnoreCase) OrElse hello.StartsWith("W", System.StringComparison.InvariantCultureIgnoreCase) Then")
这给我带来了一个问题,因为里面的引语提前切断了回应。有更好的方法吗?

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

Response.Write("<script>alert('test');</script>")
Response.Write(“警报('test');”)

注意:如果您需要转义字符串,请在谷歌或本网站上进行简单搜索,您会很好。

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


您可以在javascript中将“双qoute”替换为“单qoute”,就像在javascript中一样,“执行相同的操作,c#将不会反对单qoute,但RegisterClientScriptBlock可能是最好的选择。

为什么不将其放在.aspx标记中。您尝试过转义引号吗?比如:
Response.Write(“If hello.StartsWith(\“H\”,…
),或者您甚至可以使用单引号来包装内部函数:
Response.Write('If hello.StartsWith(“H”,…Then'))
什么是aspx标记?我需要在函数中写入此响应,因此如果您需要,我无法准确使用代码块mean@JohnBaum这是您正在response.writing中的VB代码。这将无法在浏览器中运行。您需要将其重写为JavaScript,然后可以使用下面rick的答案(使用单引号和双引号的组合)我不明白这是如何绕过双引号问题的。我不知道,做一些搜索,这个问题在这个网站上得到了回答。
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
Response.Write("        If hello.StartsWith('H', ...