我试图在aspx页面中使用response.write返回一个javascript函数。问题是我返回的函数有很多引号,它们与repsonse.write语法冲突。以下是示例代码:
Response.Write(" If hello.StartsWith("H", StringComparison.InvariantCultureIgnoreCase) OrElse hello.StartsWith("W", System.StringComparison.InvariantCultureIgnoreCase) Then")
这给了我一个问题,因为里面的引语正在尽早切断响应。有更好的方法吗?
答案 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可能是最好的选择。