2017-03-17 46 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

相關問題