Le script de section ne s'affiche pas dans le rasoir ASP.net MVC4
Je suis en train d'élaborer un JQuery mobile application dans ASP.net MVC4 de rasoir à l'aide de VSRC, Dans cshtml section de la page de scripts sont écrits ci-dessous.
@section Scripts
{
<script type="text/javascript">
$(document).ready(function () {
jQuery("#register-form").validationEngine();
});
</script>
}
Dans la mise en page.cshtml j'ai...
"@RenderSection("Scripts", false)".
Il travaille pour la première page (page de rendu en premier), mais quand il est relié par la "ActionLink" vers d'autres pages, puis la section script écrit dans ces pages ne sont pas de travail.
Des idées?
S'il vous plaît aider, Merci.
source d'informationauteur Erma Isabel
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème. Afin de contourner ce problème j'évite juste de la section "Scripts".
Supprimer
@section Scripts{
de chaque page et de mettre votre code js à la fin de la page.Pour votre exemple, assurez-vous de déplacer
@Scripts.Render("~/bundles/jquery", "~/bundles/jquerymobile")
à la ligne avant</head>
dans _Layout.cshtml. Cela permettra de garantir que jquery est chargé lorsqu'il arrive à$(document).ready(function () {...
===============================================
d'expliquer pourquoi cela se produit et, d'autre solution. http://lextell.com/blog/2012/10/23/script-section-is-not-rendered-in-asp-net-mvc-4-jquery-mobile-when-navigate-to-another-page-2/
En suivant la ligne de Erick Bacallao, je vais vous suggérons les suivantes:
Éviter d'utiliser l'URL.Contenu() pour charger .min.js o .js fichiers. Les Scripts.Render() choisissez le bon fichier dans chaque scénario.js en Debug et .min.js dans Libération).
De la modification de la _Layout.cshtml devrait ressembler à ceci:
REMARQUE: la Désactivation de jQuery MObile AJAX (comme c'est le cas) est un patch... pas une solution complète! UX decresases beaucoup.
N'est-ce pas causée par l'ajax publication?
Je crois que ce qui se passe est que le dom est en train de changer dans le Ajaxified région et dans les DOM n'est pas de reliaison les événements en raison de la document.prêt de n'exécuter qu'une seule fois au chargement de la page.
Pour obtenir ce travail, vous devrez ré-initier la liaison des DOM à l'événement, après la mise à jour partielle.
historiquement, cela a toujours été un problème avec ASP.Net updatepanels et docuemt.prêt, la façon de contourner cela est de mettre le code dans un pageLoad() à la place, comme cela s'est appelé chaque publication.
Pas sûr que cela fonctionne avec MVC.
Caisse pour plus d'info http://www.dotnet-tricks.com/Tutorial/aspnet/D719120612-Difference-between-document.ready-and-window.onload-or-pageLoad.html
Je ne sais vraiment pas pourquoi et n'ont pas le temps encore de le comprendre, mais j'ai eu le même problème ce matin. Il semble que
@section scripts
ne fonctionne pas quand il est placé à la racine de la cshtml afficher la page. Le code suivant résout ce: