2016-07-27 6 views
1

In meinem Job arbeiten mein Team und ich an einem .NET MVC-Projekt in Visual Studio, wo wir häufig Controller- oder Modellfunktionen aus JavaScript-Dateien aufrufen müssen. Zum Beispiel:JavaScript-Aufrufe von C# -Funktionen erkennen

$.ajax({ 
       "dataType": 'json', 
       "type": "POST", 
       "url": "/Lookup/CreateLeadForEmployee" 

Dies wird verwendet, aus der Lookup-Controller die CreateLeadForEmployee Methode aufzurufen. Das Problem ist, dass wir, wann immer wir diese Funktionen umbenennen oder Referenzen darauf finden wollen, einen viel manuelleren Suchprozess anstelle der eingebauten Fähigkeiten von Visual Studio (oder der verschiedenen Erweiterungen und Werkzeuge) verwenden müssen. Dies führt oft zu Fehlern und Problemen, da bestimmte Referenzen leicht zu übersehen sind. Ich frage mich, ob es eine Art Werkzeug, Paket, Add-on oder Codesyntax gibt, die es mir und meinem Team erlauben, Visual Studio anzuweisen, Dinge wie das Beispiel zu erkennen, das ich als Aufrufe von bestimmten bereitgestellt habe C# funktioniert? Um es anders auszudrücken, wie mache ich es so, dass, wenn ich in Visual Studio mit der rechten Maustaste auf CreateLeadForEmployee klicke und "Alle Verweise suchen" auswählt, wird es alle Verweise auf die Funktion enthalten, die aus einer JavaScript-Datei gemacht werden?

Antwort

1

Die schnelle Antwort auf Ihre Frage ist, es gibt kein Werkzeug dafür.

Das serverseitige intellisense konzentriert sich nur auf die serverseitigen Komponenten, während das clientseitige intellisense nur mit clientseitigen Komponenten wie Skripten, CSS, HTML-Elementen und Attributen arbeitet.

Eine Alternative ist die Suche mit crtl + shift + F in Visual Studio, um alle Vorkommen bestimmter Schlüsselwörter zu finden, und Sie können jede angezeigte Datei im Fenster Ergebnisse suchen entsprechend aktualisieren.

1

Eine Möglichkeit, die Sie verwenden können, ist die Verwendung der Hilfsmethode Url.Action, um den relativen Pfad zu dieser Aktionsmethode zu generieren.

Statt url: "/Lookup/CreateLeadForEmployee" zu tun, können Sie tun

url: "@Url.Action("CreateLeadForEmployee","Lookup")"

Wenn Rasiermesser die Seite ausgeführt wird, wird es die Url.Action Verfahren und erzeugen die relative URL zu dieser Aktion Methode auszuführen.

Das obige funktioniert, wenn Sie den JavaScript-Code in einer Rasiereransicht verwenden. Wenn Sie die URLs in einer externen js-Datei verwenden, sollten Sie die relativen URL-Werte generieren und auf eine Variable setzen und in Ihrem externen verwenden js-Datei wie in this post erläutert.

Mit diesem Ansatz wird Visual Studio "Find Usages" diesen Ort erkennen.