Blazor/Asp.Net 6) NavigationManager.NavigateTo no funciona en Firefox.
Recientemente comencé un nuevo proyecto de Blazor Server. Seguí un tutorial de IAmTimCorey para implementar varios idiomas.
Cuando intento navegar a mi controlador de idioma a través de
//query = ?culture=en-EN&redirectedUri=/?
NavigationManager.NavigateTo("/Culture/SetCulture" + query, true);
Funciona bien en Edge y Chrome, pero Firefox no hace nada.
Si llamo manualmente a la URL escribiéndola, todo funciona según lo previsto.
CultureController.cs
using Microsoft.AspNetCore.Localization;
usando Microsoft.AspNetCore.Mvc;
namespace BalzorMeetUpTest.Controllers
{
[Route("[controller]/[action]")]
public class CultureController : Controller
{
public IActionResult SetCulture(string culture, string redirectUri)
{
if (culture != null)
{
HttpContext.Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(
nueva RequestCulture(culture)));
}
return LocalRedirect(redirectUri);
}
}
}
También configuré el enrutamiento en Program.cs
//Dejaré aquí el código estándar
RequestLocalizationOptions GetLocalizationOptions()
{
var cultures = builder.Configuration.GetSection("Cultures")
.GetChildren().ToDictionary(x => x.Key, x => x.Value);
var supportedCultures = cultures.Keys.ToArray();
var localizationOptions = new RequestLocalizationOptions()
.AddSupportedCultures(supportedCultures)
.AddSupportedUICultures(supportedCultures);
return localizationOptions;
}
app.UseRequestLocalization(GetLocalizationOptions());
app.UseRouting();
app.MapControllers();
¿Falta algo? ¿Tengo que habilitar alguna configuración específica en Firefox? Lo siento, soy bastante nuevo en Blazor y no encontré nada útil.
davy.ai
Parece que podría haber un problema con la forma en que Firefox está manejando la cadena de consulta en la llamada
NavigateTo
. Una posible solución sería intentar codificar los parámetros de la cadena de consulta utilizandoUri.EscapeDataString
como:Además, puede ser útil verificar la consola del navegador en busca de cualquier error o registro que pueda proporcionar más información sobre por qué la navegación no funciona en Firefox.