J'ai essayé de créer cette méthode d'extension. Fonctionne sauf que l'aide est le texte de rendu, pas le contrôle à la vue lorsque la page s'affiche:ASP.NET MVC Helper Extension Méthode ne rendant pas le texte en tant que contrôle
J'ai inclus en utilisant System.Web.Mvc.Html; en haut de ma classe d'aide qui contient cette méthode d'extension afin qu'elle comprenne helper.RadioButton.
public static string WriteTestControlToScreen(this HtmlHelper helper)
{
StringBuilder fields = new StringBuilder();
fields.Append("<fieldset>");
fields.Append(" <div class='formLabel'><span class='requiredText'>*</span><label>Background Color</label></div>");
fields.Append(" <div class='formField'>" + helper.RadioButton("rbBackgroundColorWhite", 0, false) + "<label class='fieldInlineLabel' for=''>White</label></div>");
fields.Append(" <div class='formField'>" + helper.RadioButton("rbBackgroundColorWhite", 0) + "<label class='fieldInlineLabel' for=''>Black</label></div>");
fields.Append("</fieldset>");
return fields.ToString();
}
sortie dans la vue ressemble alors à ce (notez ce n'est pas rendu une RadioButton mais le traiter comme texte au lieu):
* Couleur de fond <% = Html.RadioButton ('rbBackgroundColorWhite', 0 , false)%> Blanc <% = Html.RadioButton ('rbBackgroundColorWhite', 0)%> Noir
Comment appelez-vous WriteTestControlToScreen? –
<% = Html.WriteTestControlToScreen()%> – PositiveGuy