2014-10-30 69 views
2

我正在嘗試使用VB.Net的Xml Literals作爲生成HTML的模板系統。我想知道是否有任何方法來控制逃跑。例如,如果我有類似於以下Xml在VB.Net文字防止逃逸

Dim param1Value as String = "test" 
Dim html = <div> 
       <a id="myLink" href="<%= "/mysite/myfile?param1=" + param1Value + "&param2=test2" %>" 
      </div> 

此代碼將產生具有編碼的&符號XML(&amp;)的鏈接。目前,我只是在將xmlElement轉換爲字符串時將這些解除。我假設這是我唯一的選擇,因爲任何其他操作都會產生無效的XML,但我想知道是否有任何方法可以指定XML Literal是原始值,並且不需要Xml Escaped。

回答

1

幾年前,我創建了一個ASP.NET MVC View Engine using VB.NET XML Literals,其中我必須解決這個確切的問題。沒有辦法告訴vb.net的Xml文字部分忽略&字符。我的特殊情況是試圖在Xml文字中包含HTML實體(如&copy;)。

我最終的結果是在所有需要XML文本中的&字符的地方使用<amp />,然後在呈現HTML時只做.Replace("<amp />", "&")。請參閱VbView.vb中的Render方法。

+0

這與我提出的解決方案類似。我想也許還有其他的方式來做到這一點,但不幸的是,似乎沒有。 – Ronnie 2015-04-03 14:33:07

+0

我希望用新的開源編譯器,可能會有一種方法來創建一個真正的解決方案,但我懷疑我有時間去處理類似的問題。 – CoderDennis 2015-04-03 19:11:58