2010-04-18 3 views
6

Ich entwickle eine ASP.NET 4-Webanwendung. Wenn ich eine Menüsteuerung in das Web-Formular setzen, wird das Menü den folgenden Code bewirkt, dass kurz vor dem Schließen </form>-Tag generieren:Menüsteuerung generierte js Ursachen Sys undefinierte Ausnahme in Web Forms

<script type='text/javascript'> 
     new Sys.WebForms.Menu({ element: 'NavigationMenu', disappearAfter: 500, 
       orientation: 'horizontal', tabIndex: 0, disabled: false }); 

Solange ich URL Rewriting nicht kompiliert der Seite und lädt richtig . Wenn ich versuche, URL Rewriting auf der Website zu verwenden, startet Visual Studio die JavaScript-Ausnahme "Sys ist undefiniert".

Dies geschieht jedoch nicht immer. Am häufigsten passiert es, wenn ich in der CSS-Datei anstößige Positionierungen ändere, aber manchmal scheinen die Ausnahmen nur willkürlich.

Wie kann das behoben werden?

+0

Die Ausnahmen passierten für mich, wenn der Benutzer Nicht-Link-Menüelemente schwebte. Siehe mein Update unten. –

Antwort

5
RouteTable.Routes.Ignore("{resource}.axd"); 
5

Einstellungen des Rendering Attribut-Menü auf „Tabelle“ fixed dieses Problems für mich, obwohl ich einen Menü-Adapter verwenden, um die Steuerung mit Listen zu machen.

<asp:Menu ID="mnuStuff" runat="server" RenderingMode="Table"> 
    ... 
</asp:Menu> 

Wenn Sie keinen Vorteil von ASP 4.0 neue CSS-Erweiterungen nehmen müssen Sie die Injektion dieser new Sys.WebForms.Menu zusammen mit folgenden Einstellung in den web.config deaktivieren.

<system.web> 
    <pages controlRenderingCompatibilityVersion="3.5"/> 
</system.web> 

Dies wird das Rendern von Inline-Javascript, asp in der Basis der Seite injiziert beseitigen.

0

weiß, dass ich die Frage ist alt, aber das kann einige Seele gießen helfen ... ;-)

ich es geschafft, dieses Problem zu beheben, indem am Ende der Seite die jquery bezogenen Skripte zu bewegen. Ich habe nicht zu viel Zeit verbracht, um herauszufinden, warum, aber es sieht aus wie es ist eindeutig ein Javascript Namenskonflikt zwischen der Javascript-Ressource-Datei (WebResource/*. Axd) und jquery (1,10 zum Zeitpunkt des Schreibens dieser).

Verwandte Themen