Was ist die korrekte Einstellung von ClientIDMode in ASP.Net 4, um ASP.Net 2.0-Rendering zu erhalten?

8

Wir haben gerade unsere Anwendung von ASP.Net 2.0 auf ASP.Net 4.0 aktualisiert.

Wir haben in der web.config im Element <system.web> enthalten:

%Vor%

Mein Verständnis ist, dass dies die Steuerelemente so darstellen soll, wie .NET 2.0 / 3.5.

Aber ... es ist nicht ... hier ist ein Beispiel

Dies wird in 2.0 gerendert:

%Vor%

Dies ist in 4.0:

%Vor%

Der Unterschied:

%Vor%

Nach dem, was ich gelesen habe, wird ASP.Net 4.0 dazu führen, dass die Serversteuerelemente und die Client-ID identisch mit der vorherigen Version gerendert werden.

Was machen wir falsch?

    
PilotBob 09.06.2010, 16:55
quelle

3 Antworten

12

Es wurde geändert, wie IDs von ASP.NET 2.0 auf ASP.NET 3.5 gerendert wurden. Da Sie von 2.0 auf 4.0 gehen, sehen Sie immer noch diesen Unterschied. Die Änderung war auf Verbesserungen der XHTML-Kompatibilität zurückzuführen.

Sie können versuchen, mit der Einstellung xhtmlCompliance compat zum 2.0-Rendering zurückzukehren. Noch eine andere Kompatibilität Einstellung, ja :) Es sollte funktionieren, aber ehrlich gesagt, ich bin mir nicht sicher, wie gut getestet, dass alte compat Einstellung ist in 4.0, und ich weiß, es wäre nicht kompatibel mit dem UpdatePanel, wenn Sie planen zu verwenden das.

Gibt es einen Grund, warum Sie das 2.0-Rendering beibehalten möchten? Nur Angst vor Regressionen, oder haben Sie irgendwelche tatsächlichen Regressionen?

XHTML-Einstellung: Ссылка

    
InfinitiesLoop 10.06.2010, 05:42
quelle
1

Für zukünftige Leser dieses Beitrags können Sie Kompatibilitätsprobleme mindern, indem Sie das <%=objectid.ClientId %> -Konstrukt auf Ihrer ASP.NET-Seite verwenden.

Beispiel: Angenommen, Ihr Textfeld heißt txtInput (das ASP.NET rendert als id = ctl00_cphMainContent_txtInput), das Sie in einem clientseitigen JavaScript-Code referenzieren müssen. Sie könnten dieses Objekt mit dem folgenden JavaScript-Code in Ihrer ASP.NET-Seite referenzieren:

%Vor%

Zur Laufzeit wird es automatisch in das folgende clientseitige Javascript übersetzt:

%Vor%

Wenn .NET "entscheidet", wie die Client-ID zugewiesen wird, funktioniert Ihr Code weiterhin.

    
G K 23.03.2012 00:17
quelle
1

In einer 4.0-Anwendung wird pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" das Styling auf der Seite Site.master komplett durcheinander bringen. Zum Beispiel werden Menüs im Designer fast unsichtbar sein und werden im Browser komplett ihr Styling verlieren. Grundsätzlich wird Styling im Designer verloren gehen.

Ich habe dies gefunden, indem ich das Zielframework von 4.0 auf 3.5 und zurück auf 4.0 gesetzt habe. Danach war das Styling gewunden. Nachdem ich alle Dateien mit einer guten App verglichen hatte, fand ich diese Zeile schließlich in web.config . Ich entfernte es und meine Stylingprobleme verschwanden.

    
Les Smith 25.07.2014 15:04
quelle

Tags und Links