2009-08-28 8 views
1

Je vais écrire une tonne d'aides pour mon application. Pour beaucoup d'entre eux, je ne souhaite pas étendre HtmlHelper, mais plutôt créer une autre classe auxiliaire, pour deux raisons: 1) pouvoir écrire, disons, Link.Home et Icon.Edit au lieu de Html. HomeLink et Html.IconEdit; 2) être capable de distinguer facilement les aides standard des personnalisations et où celles-ci sont définies.Objets d'aide personnalisés ASP.NET MVC

Est-ce possible? Comment?

Est-ce que ce n'est pas recommandé? Pourquoi?

merci

Répondre

0

Cela serait possible par le sous-classement HtmlHelper et appelant le nouveau lien de classe et l'icône par exemple.

Je ne le recommanderais pas pour la simple raison que Html.HomeLink et Html.IconEdit indiquent clairement ce que fait la méthode, elle sort Html sous la forme d'un HomeLink et d'une icône d'édition.

4

Eh bien, les "méthodes auxiliaires" ne sont que des méthodes d'extension. Si vous voulez être en mesure d'écrire Link.Home dans vos vues, vous devrez étendre ViewPage et ajouter la propriété appelée Link de type, disons, ILink. L'interface ILink peut elle-même être vide. Maintenant, tous vos points de vue devraient hériter de MyViewPage et écrire des méthodes d'aide devient une tâche simple:

public static string Home(this ILink link, string text) 
{ 
    // ... 
} 
Questions connexes