0
我想創建一個HtmlHelper函數,用於在我的應用程序的許多頁面上顯示的特定種類的下拉列表。我基本上只是試圖在現有的DropDownList函數上添加一些裝飾,但它正在編碼。這裏是我的擴展方法:如何在內聯XML中包含動態標記而不編碼
<Extension()> _
Public Function Year(ByVal HtmlHelper As System.Web.Mvc.HtmlHelper, ByVal name As String) As String
Return _
<label>
Year:
<%= HtmlHelper.DropDownList(name) %>
</label>.ToString
End Function
這將返回以下:
<label>Year:<select id="year" name="year"><option value="2007">2007</option><option value="2008">2008</option><option selected="selected" value="2009">2009</option></select></label>
,而不是我想要的東西:
<label>Year:<select id="year" name="year"><option value="2007">2007</option><option value="2008">2008</option><option selected="selected" value="2009">2009</option></select></label>
換句話說,將DropDownList是HTML編碼之前的字符串放在標籤內。我可以這樣做:
<Extension()> _
Public Function Year(ByVal HtmlHelper As System.Web.Mvc.HtmlHelper, ByVal name As String) As String
Return "<label>Year:" & HtmlHelper.DropDownList(name) & "</label>"
End Function
但我寧願使用VB的內聯XML。我如何得到DropDownList的結果不被編碼?
我可以與標籤在它前面,並指定「 for「,但如果我想在下拉菜單中放置一個表格或div,我會遇到同樣的問題。它看起來像我一直在尋找的是「解析」將它從一個字符串變成一個XML元素,因爲它現在按預期工作: <%= XElement.Parse(HtmlHelper.DropDownList(name))%> – gfrizzle 2009-08-13 20:29:48