2016-03-31 9 views
2

Wir haben eine Webanwendung mit C# und ASP.NET erstellt. Ich habe ein paar .NET Session-Variablen in meinem JavaScript-Code verweisen, so dass ich die folgende Zeile, dies zu tun:Muss der in JavaScript enthaltene C# -Code noch kompiliert werden?

var layoutID = '<%=Server.UrlEncode(string.Format("{0}", Session["layout_id"]))%>'; 

Dies funktioniert gut. Die Webanwendung wird erstellt und auf unserem Webserver veröffentlicht. Wenn ich eine Änderung vornehmen möchte, würde eine .NET-Änderung erfordern, dass ich die Änderungen kompiliere und sie erneut auf dem Webserver veröffentliche. Wenn es sich um eine JavaScript-Änderung handelt, kann ich einfach die js auf der .ASPX-Seite bearbeiten und der Fix wird sofort abgeholt ... kein Kompilieren nötig.

Meine Frage - was, wenn ich eine Änderung an diesem in JavaScript enthaltenen Inline-C# -Code mache? Sagen wir zum Beispiel, ich wollte auf Session ["layoutid"] ohne den Unterstrich zugreifen. Könnte ich einfach die .ASPX-Seite auf dem Webserver bearbeiten, oder wird das Kompilieren wie in einer .CS-Datei erforderlich sein? Ich schätze, da es C# ist, muss ich noch kompilieren, damit die Änderung übernommen wird. Und ja, ich konnte es einfach ausprobieren und selbst sehen, aber ich hatte gehofft, dass jemand mit diesem Inline-C# -Code einen kleinen Einblick geben könnte, was hinter den Kulissen passiert. Und während wir uns mit dem Thema befassen, ist die Technik, die ich verwende, um auf .NET-Session-Variablen in JavaScript zuzugreifen, der effizienteste Weg, dies zu tun? Bonusfrage - wie heißt diese Technik? Ich habe versucht, nach einer Antwort zu suchen, aber ich war mir nicht sicher, was ich nach anderem als "in-line C# code JavaScript" suchen sollte.

Danke!

+1

Zunächst einmal "Eval ist böse" sollten Sie niemals Code in Strings speichern. Zweitens, wenn Sie geringfügige Änderungen in irgendeiner Entwicklung vornehmen wollen, egal welche Sprache Sie nicht jedes Mal neu kompilieren sollten, könnten Sie die Parameter in einer Datenbanktabelle, Konfigurationsdatei oder ähnlichem speichern. – oscargilfc

+0

Ich habe ähnliche Änderungen im Code im vergangenen Jahr gemacht und musste nicht kompilieren, wenn das hilft .... Aber ich stimme zu, es ist keine gute Praxis. –

+0

Konnte das nicht viel schneller beantwortet werden, indem man es einfach ausprobiert? –

Antwort

4

Nein, Änderungen an ASPX/CSHTML-Dateien erfordern keine erneute Kompilierung.

Hinweis: Ob es eine gute Idee ist, auf den Produktionsserver zu springen und den Quellcode zu ändern, indem die Quellcodeverwaltung/Testumgebung umgangen wird, ist eine Frage, die Ihr Team diskutieren und beantworten sollte.

+0

Danke Alexei. Das ist ein besonderer Umstand, aber du hast recht, normalerweise würde ich niemals in die Produktion springen und so etwas ändern. – Ageonix

Verwandte Themen