2017-03-17 82 views
2

我有这个HTML输入应该允许值属性中的双引号和单引号。如何在传递给HTML值属性的字符串中允许双引号和单引号?

<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("""", "&quot;") 
     'str = str.Replace(Chr(34), "&quot;") 
     'str = "'" & str & "'" 
     Return str 
    End Function 

我也尝试使用Chr(34)并将整个字符串包装在单引号中。我的工作测试用例是一个像“一些字符串”的字符串。 所以在HTML中,value =“”一些字符串“”,这是一个空字符串,输入框留空。

我也试过HTML属性的单引号。

value='$Title$' 

这允许字符串用双引号括起来,但显然不是用单引号括起来的字符串。

我的头旋转在双引号地狱。我还没有尝试过任何其他建议?

回答

0

您可以使用HttpUtility.HtmlEncode方法,而不是尝试自己编码引号。它将处理HTML中无效的引号和所有其他可能的字符。使用示例:

Imports System 
Imports System.Web 

Public Module Module1 
    Public Sub Main() 

     Console.Write(HttpUtility.HtmlEncode("""Hello""")) 

    End Sub 
End Module 

参见实例:https://dotnetfiddle.net/7fVVh0

相关问题