通过 Response.Write() 写回函数

Writing back a function through Response.Write()

本文关键字:写回 函数 Response Write 通过      更新时间:2023-09-26

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

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

这给了我一个问题,因为里面的引号很早就切断了响应。有没有更好的方法可以做到这一点?

你可以在javascript中将double qoute"替换为single qoute

,就像在javascript中一样,"和"都做同样的事情,c#不会反对单个qoute,但RegisterClientScriptBlock可能是最好的选择。

不是最好的方法,RegisterClientScriptBlock更好,但考虑到您正在发出 JavaScript 而不是 VB.NET 代码,这将有效:

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

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

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

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

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