Skip to main content

Helper Extensions

Tombatron.Turbo provides extension methods on HttpContext for detecting Turbo request types and retrieving connection metadata.

Turbo Frame Extensions

// Is this a Turbo Frame request?
HttpContext.IsTurboFrameRequest()

// Is it for a specific frame?
HttpContext.IsTurboFrameRequest("cart-items")

// Does the frame ID start with a prefix?
HttpContext.IsTurboFrameRequestWithPrefix("item_")

// Get the raw frame ID
string? frameId = HttpContext.GetTurboFrameId();

Turbo Stream Extensions

// Is this a Turbo Stream request?
HttpContext.IsTurboStreamRequest()

SignalR Extensions

// Get the SignalR connection ID (for originator exclusion)
string? connectionId = HttpContext.GetSignalRConnectionId();

The connection ID is sent automatically by the JS adapter as an X-SignalR-Connection-Id header on every Turbo fetch request. Pass it to ITurbo.Stream() or ITurbo.Broadcast() to exclude the originator from broadcasts.

Usage Pattern

The typical pattern in a page handler:

public IActionResult OnPostUpdate()
{
// Mutate data...

if (HttpContext.IsTurboFrameRequest())
{
return Partial("_MyPartial", Model);
}

return RedirectToPage();
}

For more details, see the Turbo Frames Guide.