Blazor - Integrando componentes com Razor Page e MVC |
Neste artigo veremos como usar um componente Blazor em uma aplicação ASP .NET Core MVC. |
Se você esta chegando agora e não sabe o que é o Blazor leia o artigo ASP .NET Core - Iniciando com o Blazor - Macoratti; se você já conhece e quer saber mais pode fazer o curso de Blazor Essencial.
@using
System.Net.Http @using Microsoft.AspNetCore.Authorization @using Microsoft.AspNetCore.Components.Authorization @using Microsoft.AspNetCore.Components.Forms @using Microsoft.AspNetCore.Components.Routing @using Microsoft.AspNetCore.Components.Web @using Microsoft.JSInterop @using RazorPage_Blazor |
<h2>Olá sou um componente Blazor</h2> <h2>Contagem Atual: @currentCount</h2> <button class="btn btn-primary" @onclick="IncrementCount">Clique aqui</button> @code { private int currentCount = 0; [Parameter] public int InitialValue { get; set; } private void IncrementCount() => currentCount++; protected override void OnParametersSet() { currentCount = InitialValue; } } |
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace RazorPage_Blazor
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
// inclua esta linha
services.AddServerSideBlazor();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
// inclua esta linha
endpoints.MapBlazorHub();
});
}
}
}
|
Finalmente abra o arquivo Index.cshtm da pasta Pages e integre o componente Blazor usando o tag helper component e adicione o script Blazor:
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<div class="text-center">
<h2 class="display-4">Usando componente Blazor </h2>
</div>
<hr />
<component type="typeof(RazorPage_Blazor.Pages.Contador)" param-InitialValue="0" render-mode="Server" />
@section Scripts {
<script src="_framework/blazor.server.js"></script>
}
|
Agora é só alegria...
Executando o projeto veremos o componente exibido na página e poderemos interagir com o contador da mesma forma que na aplicação Blazor:
Para fazer a integração de um componente Blazor em uma aplicação ASP .NET Core MVC basta seguir os mesmos procedimentos.
Pegue o projeto aqui: RazorPage_Blazor.zip
"Foge também das paixões da mocidade; e segue a
justiça, a fé, o amor, e a paz com os que, com um coração puro, invocam o
Senhor."
2 Timóteo 2:22
Referências: