2 Stimmen

Visual Studio Intellisense für JavaScript, wenn von JavaScriptSerializer generiert

Was ist der richtige Weg, um JavaScript Intellisense in Visual Studio 2010 zu erhalten, wenn ein clientseitiges Objekt mit der JavaScriptSerializer ?

Ich habe zum Beispiel eine Klasse namens Record mit mehreren Eigenschaften; ich generiere eine Sammlung von Records und dann die Serialisierung mit der JavaScriptSerializer .

Code Hinter

public string JsonRecords
{
    get
    {
        var js = new System.Web.Script.Serialization.JavaScriptSerializer();
        return js.Serialize( Records );
    }
}

ASPX-Seite

<script>
  // mocks the Record object
  var records = [{ "Date": "", "Latitude": 0, "Longitude": 0 }];

  // sets the Record object
  records = <%= JsonRecords %>;
</script>

Wenn ich die JS-Datensatzvariable im Voraus ausfülle, um die Records Klasse, erhalte ich vollständige Intellisense-Unterstützung mit Visual Studio.

Das funktioniert, aber es fühlt sich schmutzig an. Gibt es eine geeignetere Methode? Oder ist dies eine gängige Praxis?

2voto

Darin Dimitrov Punkte 990883

Was ist der richtige Weg, um JavaScript Intellisense in Visual Studio 2010 beim Erstellen des Objekts durch den JavaScriptSerializer?

Warten Sie auf VSNext oder einen Patch, der ein solches Szenario ermöglicht. Derzeit wird Intellisense in Szenarien, in denen Javascript mit serverseitigem Code gemischt wird, nicht unterstützt.

0voto

ahin4114 Punkte 483

Javascript-Intellisense wird durch das Parsen des Skripts selbst erzeugt. Wenn Sie also die Eigenschaften nicht inline im Skript (oder in einem referenzierten Skript) definiert haben, werden Sie keine Intellisense sehen.

Wenn es Strukturen gibt, die Sie mit Intellisense verwenden möchten, die aber letztendlich durch ein dynamisches Konstrukt bereitgestellt werden sollen, können Sie diese in einer anderen .js-Datei unterbringen und dann ein Referenz-Tag in Ihre Datei einfügen:

/// <reference path="../xxx.js" />

Dies würde im Client als Kommentar behandelt werden, aber Visual Studio würde es erkennen, wenn Sie im Code arbeiten. Minifier/Ouglifier entfernen diese Kommentare, bevor sie in die Produktion gelangen, sodass sie die Leistung nicht beeinträchtigen.

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