Bonjour, pourriez-vous m'aider sur cette problématique qui me bloque depuis des jours. (Je travaille en MVC 5)
Mon application est une SPA "maison" puisque je charge des PARTIAL VIEWS en AJAX dans un système d'onglets afin que je puisse basculer d'une PARTIAL à une autre (le mécanisme est basé sur du Javascript: show() vs hide()).
Dans chaque "onglet" (PARTIALVIEW) je veux pouvoir utiliser un composant transverse réutilisable: TOOLBAR avec des BOUTONS:
J'ai donc crée un RAZOR HELPER , localisé dans un dossier APP_CODE, afin qu'il soit accessible de partout et cela fonctionne bien visuellement.
1 2 3 4 5 6 7 8 9
|
@helper HswToolbar()
{
<header>
<button class="btn btn-block btn-primary btn-flat pull-left hswbutton">Quitter</button>
<button class="btn btn-block btn-primary btn-flat pull-right hswbutton">Détail</button>
</header>
} |
Je veux déclencher du JAVASCRIPT depuis ce composant pour effectuer des actions différentes selon l'onglet (PARTIALVIEW) dans lequel je me situe.
Je déclare donc l'appel de mon script dans ma LAYOUT:
@Scripts.Render("~/Scripts/hsw/HtmlHelper.js")
et dans mon JS:
1 2 3 4 5 6 7
|
$(document).ready(function () {
$(".hswbutton").click(function (e) {
alert("ok");
});
}); |
PROBLEME: le SCRIPT n'est JAMAIS exécuté.
J'ai essayé la solution suivante qui fonctionne: déclaration de l'appel de mon JS dans le RAZOR HELPER:
1 2 3 4 5 6 7 8 9 10
|
@helper HswToolbar()
{
<header>
<button class="btn btn-block btn-primary btn-flat pull-left hswbutton">Quitter</button>
<button class="btn btn-block btn-primary btn-flat pull-right hswbutton">Détail</button>
</header>
<script type="text/javascript" src="~/Scripts/hsw/HtmlHelper.js"></script>
} |
Mais cette solution ne peut-être valide car elle provoquera de multiples appels au fichier JS selon le nombre d'onglets appelés (qui contienne le RAZOR HELPER).
Auriez-vous une idée pour remédier à ce problème ? Ou existe-t-il une autre solution pour parvenir à mon scénario ?
Merci d'avance
Partager