HtmlHelpers sont vraiment utiles, aussi j'utilisais AjaxHelpers jusqu'à ce que je voulais faire quelque chose qu'ils ne peuvent pas ... alors maintenant je préfère jquery + javascript, mais je n'aime pas écrire en javascript (peut-être parce que je ne le connais jamais aussi bien que je voulais) et pour rendre la vie plus facile je voulais mettre en œuvre quelque chose comme JQueryHelper, mais je ne sais pas comment ça fonctionne. URL résolues, car la plupart des méthodes ne feraient que transmettre des données aux contrôleurs etc ... et mettre à jour certaines parties de l'interface utilisateur, donc je voudrais créer quelque chose comme AjaxHelper, mais basé sur JQuery, pas sur MSScripts.Comment mettre en œuvre like-HtmlHelper
Que devrais-je inclure dans une telle classe? comment puis-je obtenir le contexte, url et générer le code javascript approprié qui peut être dynamiquement injecté dans ex.
<div onclick=JQuery.Action("<ActionName>", "<Controller>", new { param1, param2}, <Id to Update>)> My Div</div>
Comment est-il implémenté dans HtmlHelper ou AjaxHelper?
Editer: J'ai essayé quelques implémentations simples, mais je pense que je suis un manque de connaissances et je ne sais pas comment implémenter une classe avec des extensions exacly.
J'ai ClassA (classe) et ClassAExt (extensions): J'ai quelque chose comme ça:
static public class ClassAExt{
public static MvcHtmlString Method(this ClassA classA) {
}
}
Mais dans la vue(), lorsque j'utilise ClassAExt.Method() j'ai passer aussi instance de ClassA (dans les helpers Ajax et Html cet argument est gris (optionnel? pas nécessaire?), comment obtenir un tel effet).
Mayby il n'y a aucune raison de mettre en œuvre tout de début et vous avez raison: l'extension HtmlHelper est une meilleure façon ... Je voulais juste savoir pourquoi « (ce HtmlHelper HtmlHelper) » n'est pas nécessaire (grisées) dans Le code de View et mes extensions sont forcés de passer (ClassA classA) dans chaque méthode dans le code de View – Simon
Honnêtement, je ne peux pas donner un sens à votre question - peut-être que vous devriez mettre quelque chose de plus précis que "classA". –