它被替换为下面的vb.net代码:Dim view As New StringBuilder(Utils.ReadView("someView.ht">
我有一个HTML输入,它应该允许在value属性中使用双引号和单引号。
<td><input id="Title" name="Title" class="required" value="$Title$" maxlength="50"/></td>
它被替换为下面的vb.net代码:
Dim view As New
StringBuilder(Utils.ReadView("someView.htm"))
With view
.Replace("$Title$", EscapeQuote(model.Widget.Title))
我一直在尝试编写EscapeQuote,将所有双引号的实例替换为HTML的等价物& quot;
Private Function EscapeDoubleQuotes(ByVal str As String) As String
str = str.Replace("""", """)
'str = str.Replace(Chr(34), """)
'str = "'" & str & "'"
Return str
End Function
我还尝试使用Chr(34)并将整个字符串括在单引号中。我的工作测试用例是一个类似"some string“的字符串。因此在HTML语言中,value=“”value= string"“是一个空字符串,输入框留空。
我还尝试在HTML属性上使用单引号。
value='$Title$'
这允许字符串括在双引号中,但显然不允许字符串括在单引号中。
我的头在双引号地狱里旋转。还有其他我没有尝试过的建议吗?
发布于 2017-03-17 19:51:16
您可以使用HttpUtility.HtmlEncode
方法,而不是尝试自己对报价进行编码。它将处理引号和所有其他可能在HTML中无效的字符。用法示例:
Imports System
Imports System.Web
Public Module Module1
Public Sub Main()
Console.Write(HttpUtility.HtmlEncode("""Hello"""))
End Sub
End Module
https://stackoverflow.com/questions/42864502
复制相似问题