Je souhaite créer une fonction HtmlHelper pour un type spécifique de liste déroulante qui apparaît sur plusieurs pages de mon application. Je suis simplement en train d'essayer d'ajouter une décoration autour de la fonction DropDownList existante, mais elle est en cours d'encodage. Voici ma méthode d'extension:Comment inclure un balisage dynamique dans un fichier XML incorporé sans le coder
<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
Ce retourne les éléments suivants:
<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>
au lieu de ce que je veux:
<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>
En d'autres termes, le DropDownList est HTML codé avant que la chaîne est mettre à l'intérieur de l'étiquette. Je pourrais le faire comme ceci:
<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
mais je préfère utiliser le XML en ligne de VB. Comment obtenir les résultats de DropDownList pour ne pas être codés?
je pourrais faire précéder de l'étiquette et de préciser " pour ", mais j'aurais la même question si je voulais mettre une table ou un div autour de la liste déroulante, par exemple. Il semble que tout ce que je cherchais était "Parse" pour le faire revenir d'une chaîne à un élément XML, car cela fonctionne maintenant comme prévu: <% = XElement.Parse (HtmlHelper.DropDownList (name))%> – gfrizzle