通过Response.Write()写回函数

时间:2012-04-12 17:40:39

标签: 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.InvariantCultureIgnoreCase) Then")

这给了我一个问题,因为里面的引语正在尽早切断响应。有更好的方法吗?

4 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分: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

答案 2 :(得分:0)

如果您输出的函数是javascript,那么一种方法是使用单引号。从javascript的角度来看,单引号和双引号或多或少可以互换为字符串文字(虽然我确信有些情况下这不是真的 - 我只是不知道javascript是否足以说出它们是什么)。 / p>

Response.Write("        If hello.StartsWith('H', ...

答案 3 :(得分:0)

你可以在你的javascript中替换double qoute“和qoute”,就像在javascript中一样“和'做同样的事情而c#不会反对单个qoute但是RegisterClientScriptBlock可能是最好的选择。

相关问题