Helper library for minimizing Razor in your hybrid MAUI app project
- Install Nuget package
Install-Package MauiBlazorHybrid.Pages
- In your Program.cs add
builder.Services.AddHybridPages(typeof(RazorEntryPoints.Routes))
.WithAppShellNavigation()
.WithPages(builder =>
{
builder.AddTransient<HomePage>("Home", "/");
builder.AddTransient<CounterPage>("Counter", "/counter");
builder.AddTransient<WeatherPage>("Weather", "/weather");
});
- Define your pages
public class HomePage : HybridContentPage { }
public class CounterPage : HybridContentPage { }
public class WeatherPage : HybridContentPage { }
- Make sure your routes razor file inherits from HybridComponentBase
@inherits HybridComponentBase
<Router AppAssembly="@typeof(MauiProgram).Assembly">
<Found Context="routeData">
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
</Found>
</Router>
###Allowing for Razor parameters via Navigation You can add navigation support for parameters by adding this the page builder in the WithPages scope:
builder
.AddTransient<ViewWeatherPage>("View Weather")
.WithAppShellNavigatableRoute("/weather/view/{row:int}", "ViewWeatherPage");