En Blazor, puedes pasar argumentos a un controlador en una aplicación ASP.NET utilizando HttpClient
para enviar solicitudes HTTP. Esto es útil para interactuar con API y enviar datos desde un componente Blazor a un backend en ASP.NET Core.
Para pasar un argumento a un controlador desde un componente Blazor, puedes usar HttpClient
con una solicitud GET
o POST
.
En el archivo Program.cs
, asegúrate de registrar HttpClient
:
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("https://tuapi.com/") });
En un componente .razor
, puedes inyectar HttpClient
y enviar el argumento al controlador.
@inject HttpClient Http
<button @onclick="EnviarDato">Enviar</button>
@code {
private async Task EnviarDato()
{
string parametro = "miValor";
var respuesta = await Http.GetAsync($"api/controlador?dato={parametro}");
if (respuesta.IsSuccessStatusCode)
{
Console.WriteLine("Dato enviado correctamente.");
}
}
}
@inject HttpClient Http
<button @onclick="EnviarDato">Enviar</button>
@code {
private async Task EnviarDato()
{
var dato = new { Nombre = "Ejemplo" };
var respuesta = await Http.PostAsJsonAsync("api/controlador", dato);
if (respuesta.IsSuccessStatusCode)
{
Console.WriteLine("Dato enviado correctamente.");
}
}
}
En el backend, el controlador debe manejar la solicitud:
[ApiController]
[Route("api/controlador")]
public class MiControlador : ControllerBase
{
[HttpGet]
public IActionResult ObtenerDato([FromQuery] string dato)
{
return Ok($"Recibido: {dato}");
}
[HttpPost]
public IActionResult RecibirDato([FromBody] MiModelo modelo)
{
return Ok($"Recibido: {modelo.Nombre}");
}
}
public class MiModelo
{
public string Nombre { get; set; }
}
Blazor permite pasar argumentos a un controlador en ASP.NET Core usando HttpClient
, ya sea con GET
o POST
. Esto facilita la comunicación entre el frontend y el backend en aplicaciones web modernas.
Jorge García
Fullstack developer