2010-02-12 4 views
0

je veux juste être en mesure d'appeler un sous-programme de javascritp sur le client, après que le serveur a fait sa chose (quand une action complète ou de contrôle va à la vue, je voudrais ne vous dérange pas d'appeler les js de la vue non plus).comment appeler une méthode javascript après une action ou à partir d'une vue?

pour une raison quelconque, même vs2010 ne me laisse pas mettre des points d'arrêt dans <% ...%> zones marquées entre <script...> and </script> zones marquées. Pour cette raison, je ne peux pas comprendre ce qui se passe et comment ça fonctionne. voici ce que j'ai mis dans mon avis, et le javascritp devrait fonctionner, mais il ne fonctionne pas ....

juste en essayant d'appeler "RunOnceRoutines;" mais ça ne s'appelle pas! Les 2 questions: comment diable appelons-nous les méthodes javascript du serveur, et où est tout ce débogage javascript jolies dont j'ai entendu parler depuis vs2008? introuvable!

<%@ Control Language="VB" Inherits="System.Web.Mvc.ViewUserControl(Of FP.RatePicModel)" %> 



<script type="text/javascript" language="javascript"> 
     var RatePicPanelRunCount = 0; 

     function ChangeMainPic(newSrc) { 
     $get("imgPic").src = newSrc; 
     alert($get("imgPic").src + '\n' + newSrc); 
     RatePicPanelRunCount++; 
     } 


     function UpdateGlobalVariables() { 
     // Update variables... 
     ShownPicID = <%=Model.CurShownPicID%>; 

      <% //this shows up! 
      msgbox(model.curshownpicid) 
      %> 

     ShownUserID = <%= Model.CurShownUserID %>; 
      CurrentUserID = <%= UserID %>; 
      alert('CurUserID is ' + CurrentUserID); 
      alert('From cookie its ' + getCookie('UserID')); 
     } 

     function RunOnceRoutines() { 
     if (RatePicPanelRunCount == 0) { 
       ChangeMainPic('<%= Model.CurPicURL%>'); 
       UpdateGlobalVariables; 
     }; 
     } 

     RunOnceRoutines; 


</script> 


<table width="100%" cellpadding="0" cellspacing="0"> 
    <tr> 
     <td> 
      <% 
       Html.RenderPartial("AddToFavs", Model.AddFavAction) 
      %> 

     </td> 
    </tr> 
</table> 

Répondre

1

Il me semble que vous avez des erreurs de syntaxe qui provoquent la rupture du js avant qu'il ne soit invoqué. Avez-vous vérifié votre sortie de débogage? Le plugin Firebug pour FireFox est idéal pour ce

Edit: Pour activer le débogage JS dans IE, vous devez le mettre dans les options d'Internet Explorer. Commander this link pour plus de détails

+0

Internet Explorer ne renvoie pas une erreur javascript, ce qui est normalement une exclamation jaune, n'existe pas, donc dit javascript est très bien et qu'il n'y a pas de problèmes avec elle. Que penses-tu de cela? –

+0

J'ai vérifié que la syntaxe semble de nouveau être ok, sauf si vous avez trouvé une erreur de syntaxe, mais le navigateur dit son ok aussi bien. des idées? –

+0

Avez-vous essayé d'afficher la source et de regarder le code rendu au client? Cela vous donnera d'autres indices. Mon point sur les erreurs de syntaxe est plus bas à plusieurs variables non déclarées dans votre JS. – MPritchard

Questions connexes