0

Je veux exécuter JavaScript lorsque le document est prêt sans trop de surcharge de syntaxe. L'idée est d'utiliser Site.Master et ContentPlaceholder:jQuery document.ready + Asp.Net ContentPlaceholder provoque des problèmes d'intuition Visual Studio

<script type="text/javascript"> 
    $(document).ready(function() { 
     <asp:ContentPlaceHolder ID="OnReadyScript" runat="server" /> 
    }); 
</script> 

et dans les pages héritées il suffit d'écrire un code simple:

<asp:Content ID="Content3" ContentPlaceHolderID="OnReadyScript" runat="server"> 
    $("#Login").focus(); 
</asp:Content> 

Il fonctionne très bien, mais Visual Studio se plaint et donne des avertissements.

L'avertissement sur la page type est Expected expression à la ligne <asp:ContentPlaceHolder.

Dans avertissement pages héritées est Could not find 'OnReadyScript' in the current master page or pages.

J'ai essayé d'utiliser Writer.Write à la page principale pour rendre balise script et le code d'emballage:

<% Writer.Write(@"<script type=""text/javascript"">$(document).ready(function() {"); %> 
<asp:ContentPlaceHolder ID="OnReadyScrit" runat="server" /> 
<% Writer.Write(@"});"); %> 

, mais le rendu des pages se termine après l'ouverture balise de script est rendu. Html se termine essentiellement par

<script type="text/javascript"> 

Comment puis-je le faire fonctionner?

Répondre

0

Il s'agit d'un bogue dans la coloration syntaxique de Visual Studio.

Essayez

<%= @"<script type=""text/javascript"">$(document).ready(function() {" %> 
<asp:ContentPlaceHolder ID="OnReadyScript" runat="server" /> 
<%= @"});" %> 
+0

Identique à 'Writer.Write' - rendu se termine après l'ouverture balise' script'. '$ (document) ...' n'est pas rendu. On dirait qu'il existe une sorte de protection intégrée de l'injection JavaScript dans Asp.Net. –

Questions connexes