Bom dia, Estou um pouco decepcionado com este curso devido ao grande CTRL+C, CTRL+V, que está sendo apresentado sem muita profundida. Venho desde o começo dos cursos de C# desenvolvendo esse projeto e estou tendo atualmente um problema no for="@context" e não consegui encontrar o motivo pelo fórum.
Caso reparem não utilizei ButtonTemplate pois estive tendo problema com ele e pelo fórum descobri que nas versões mais recentes do MudBlazor essa estrutura foi retirada/modificada e por isso utilizei a ActivatorContent.
@page "/CadastrarArtista"
@inject ArtistaAPI artistaAPI
@inject NavigationManager navigationManager
<MudPaper Class="px-8 pt-2 pb-4 mx-12 my-8" Justify="Justify.Center">
<MudText Class="mt-8" Typo="Typo.h4">Cadastro do Artista</MudText>
<MudForm>
<MudTextField Class="mt-4" T="string" Placeholder="Nome do Artista"
Variant="Variant.Outlined"
@bind-Value ="nome"
Required="true"
RequiredError="Campo obrigatório." />
<MudTextField Class="mt-4" T="string" Placeholder="Biografia do artista"
Variant="Variant.Outlined"
@bind-Value="biografia"
Lines="4"
Required="true"
RequiredError="Campo obrigatório." />
<MudImage Class="mt-4" src="@fileImage" />
<MudFileUpload T="IBrowserFile" Accept=".jpeg" FilesChanged="UploadFile" >
<ActivatorContent>
<MudButton HtmlTag="label"
Variant="Variant.Filled"
Color="Color.Primary"
StartIcon="@Icons.Material.Filled.PhotoCamera"
for="@context">
Foto de Perfil
</MudButton>
</ActivatorContent>
</MudFileUpload>
<div class="d-flex align-center justify-space-between mt-4">
<MudButton Variant="Variant.Filled"
@onclick="Navegar"
Color="Color.Primary"
Class="ml-auto">
Listar
</MudButton>
</div>
<div class="d-flex align-center justify-space-between mt-4">
<MudButton Variant="Variant.Filled"
@onclick="Cadastrar"
Color="Color.Primary"
Class="ml-auto">
Cadastrar
</MudButton>
</div>
</MudForm>
</MudPaper>
@code {
private string? nome;
private string? biografia;
private string? fileImage;
private async Task Cadastrar()
{
var request = new ArtistaRequest(nome!, biografia!);
await artistaAPI.AddArtistaAsync(request);
Navegar();
}
private void Navegar()
{
navigationManager.NavigateTo("/Artistas");
}
private async Task UploadFile(IBrowserFile file)
{
long maxFileSize = 1024 * 1024 * 15;
var format = "image/jpeg";
var resizedImage = await file.RequestImageFileAsync(format, 200, 200);
using var fileStream = resizedImage.OpenReadStream();
using var memoryStream = new MemoryStream();
await fileStream.CopyToAsync(memoryStream);
fileImage = $"data:{format};base64,{Convert.ToBase64String(memoryStream.ToArray())}";
}
}