FullStackCodeLens closes the visibility gap between your ASP.NET backend and the JavaScript, TypeScript, and Blazor code that calls it. Instead of manually grepping for "who calls this endpoint?", it shows you inline, right above the method - and gives you dedicated tool windows for the full picture.
What it does
AJAX Call Map - correlates every ASP.NET controller action (and Minimal API endpoint) with the JS/TS fetch/axios/jQuery $.ajax call sites that target it, in both directions:
- Above a controller action:
FullStackCodeLens: 3 AJAX calls - click through to every caller.
- Above the JS/TS function that makes the call:
FullStackCodeLens: -> ProductsController.GetAll - click through to the handler.


It recognizes every common way JS/TS code calls an endpoint - jQuery $.ajax, jQuery $.get, raw XMLHttpRequest, and axios - and correlates all of them back to the same handler:

Route Explorer - a single list of every route in your workspace (attribute-routed, conventional MVC, and Minimal API), with:
- Conflict detection - two different handlers mapped to the same method + template.
- Unused route detection - no JS/TS caller found anywhere in the workspace.
- Unprotected route detection - a mutating route (POST/PUT/DELETE/PATCH) with no
[Authorize]/[AllowAnonymous]/.RequireAuthorization() attribute on the route itself (a global default-authorization policy set once for the whole app isn't reflected here).
- DTO drift detection - the JS/TS payload sent doesn't match the C# request DTO's actual properties.
- One-click export to a
.http file or an OpenAPI document.

SignalR Map - correlates SignalR Hub methods with their JS/TS client call sites, covering both directions (connection.invoke(...) calling a Hub method, and Clients.*.SendAsync(...) pushing an event that JS listens for with connection.on(...)), shown both inline via CodeLens and in a dedicated tool window.


Razor Method Map - for Blazor .razor files, since Visual Studio's own CodeLens and Go-To-Definition support has real, documented gaps for Razor components: a filterable list (by Method, File, and "Called Via") showing every method declared in a .razor file's @code block, where it's declared, and every place it's called from in that same file - plain C# calls, @onclick="Handler"-style event bindings, and inline @Method() expressions - all double-click-to-navigate.

Toggle & Rescan - a toolbar toggle to turn the AJAX CodeLens indicators on/off, and a Rescan button that bumps every index in one click (useful right after a big refactor, without waiting for the file-watcher).

How it works
Everything is fast, lightweight text/regex scanning - not a full Roslyn semantic analysis - so it works without needing your JS/TS project to be "wired up" to the C# project in any special way, and it's forgiving about non-standard code. It scans your whole workspace in the background and keeps itself up to date automatically as you edit.
Requirements
- Visual Studio 2026 or Visual Studio 2022 (version 17.14 or later) - Community, Professional, or Enterprise are all supported.
- Visual Studio 2019 is not supported.
- Works with ASP.NET MVC, Web API, Minimal APIs, SignalR, and Blazor projects.
Pricing
FullStackCodeLens is free to try for 30 days, full-featured, no credit card required. After the trial, a one-time €12 lifetime license unlocks it permanently - no subscription. Buy and activate it entirely inside Visual Studio: click Buy License on the toolbar, complete checkout in the window that opens (no browser required), and paste in the license key you're given to unlock instantly.
| |