5 Stimmen

Ausführen von serverseitigem Code aus JavaScript

Ich bin mir nicht sicher, ob dies möglich ist oder nicht, aber hier ist mein Szenario:

In etwa 10 unserer Aspx-Dateien haben wir die gleiche JavaScript-Funktion, ich möchte diese von all diesen Seiten zu entfernen und legen Sie es in der Haupt-JavaScript-Datei (main.js), die global für alle Seiten ist, so ist es einfacher zu pflegen. der JavaScript-Code in den aktuellen Aspx-Seiten sieht etwa so aus:

var regEx_gaid = <%= regEx["regEx_gaid"] %>; 
var regEx_wCard = <%= regEx["regEx_wildCard"] %>; 
var regEx_fCss = <%= regEx["regEx_flattenCss"] %>; 
var regEx_iCss = <%= regEx["regEx_inlineCss"] %>;
...

function doSomething() {
   // do something with those variables declared above.
}

Ich bin mir nicht sicher, wie ich die serverseitigen Werte für diese Variablen in main.js erhalten kann.

Auch dies kann von Bedeutung sein:

"regEx" innerhalb <%= regEx["regEx_gaid"] %> ist eine Wörterbuchsammlung auf der Serverseite und "regEx_gain" ist der Schlüssel für den Zugriff auf den Wert des regEx-Wörterbuchs.

Danke.

1voto

competent_tech Punkte 43546

In Ihren Seiten können Sie diese Javascript-Vars dynamisch auf jeder Seite erstellen, indem Sie RegisterStartupScript :

this.ClientScript.RegisterStartupScript(this.GetType(), "MainVars", "var regEx_gaid = '" + regex_gaid.ClientID + "';", true);

Wir nutzen diesen Mechanismus ausgiebig: Registrieren Sie die Kontrollvariablen im Code-Behind (sie werden in jeder Seite ausgegeben), aber verbrauchen Sie sie dann in einem zentralen Skript (ähnlich wie Ihre main.js).

1voto

Nick W. Punkte 1040

Sie könnten eine separate ASP-Seite einrichten, die nur den Inhalt Ihrer Variablen ausgibt. Dann können Sie eine AJAX-Anfrage an diese Seite von Javascript aus stellen.

JQuery für die Kurzschrift verwenden:

var regEx_gaid = "";

$.get('regex_gaid.aspx', function(data) {
  regEx_gaid = data;
});

1voto

Charlie Punkte 1292

Können Sie eine main.js.aspx dann verschieben Sie die Skripte in main.js a main.js.aspx und main.js.aspx als Javascript-Datei verwenden?

main.js.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="main.aspx.cs" Inherits="TempProject.js.main" %>
var regEx_gaid = <%= regEx["regEx_gaid"] %>; 
var regEx_wCard = <%= regEx["regEx_wildCard"] %>; 
var regEx_fCss = <%= regEx["regEx_flattenCss"] %>; 
var regEx_iCss = <%= regEx["regEx_inlineCss"] %>;

CodeBehind:

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.ContentType = "application/javascript";
    }

Andere Dateien:

<script type="text/javascript" src="js/main.js.aspx"></script>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X