navegar desde un viewmodel a una pagina interna blazor

will linares 0 Puntos de reputación
2024-02-06T20:22:39.8333333+00:00

Existe una forma de navegar desde un Viewmodel a una pagina interna de blazor? Tengo una aplacion hibrida .net MAUI - Blazor. Y tengo varias páginas blazor pero tengo también algunas nativas de MAUI. Dentro de un ViewModel tengo unos comandos y cuando se ejecuta uno de ellos quisiera redireccionar al usuario a una página de blazor específica. Entiendo que dentro de las Contentpage existe NavigationApp pero puedo inyectar esto dentro de un view model?

Tecnologías de desarrolladores | ASP.NET | Otros
0 comentarios No hay comentarios
{count} votos

1 respuesta

Ordenar por: Muy útil
  1. Jonathan Pereira Castillo 17,170 Puntos de reputación Personal externo de Microsoft Moderador
    2025-01-23T16:20:48.28+00:00

    ¡Hola will linares!

    Esperamos que este mensaje te encuentre bien.

    Lamentamos sinceramente la demora en abordar tu tema en este foro.

    Sí, es posible navegar desde un ViewModel a una página interna de Blazor en una aplicación híbrida .NET MAUI - Blazor. Aquí tienes cómo hacerlo:

    Inyecta NavigationManager en tu ViewModel:

    • Primero, asegúrate de que tu ViewModel tenga acceso a NavigationManager.

    Configura la navegación:

    • En tu ViewModel, usa NavigationManager para redirigir a la página deseada.

    Ejemplo

    Inyecta NavigationManager en tu ViewModel:

    public class MyViewModel
    private readonly NavigationManager _navigationManager;
        public MyViewModel(NavigationManager navigationManager)
        {
        _navigationManager = navigationManager;
    
        }
       
        public void NavigateToBlazorPage()
        {
    
        _navigationManager.NavigateTo("/ruta-de-tu-pagina");
    
        }
    }
    

    Configura la inyección de dependencias:

    • En tu archivo Startup.cs o Program.cs, configura la inyección de dependencias:
         builder.Services.AddSingleton<MyViewModel>();
      

    Usa el ViewModel en tu página MAUI:

    • En tu página MAUI, inyecta el ViewModel y llama al método de navegación:
    public partial class MyMauiPage : ContentPage
    
        private readonly MyViewModel _viewModel;
       
        public MyMauiPage(MyViewModel viewModel)
        {
    
        InitializeComponent();
        _viewModel = viewModel;
    
        }
       
        private void OnNavigateButtonClicked(object sender, EventArgs e)
        {
    
        _viewModel.NavigateToBlazorPage();
    
        }
    }
    

    Con estos pasos, podrás navegar desde un ViewModel a una página interna de Blazor en tu aplicación híbrida .NET MAUI - Blazor. ¡Buena suerte con tu proyecto!

    Agradecemos tu comprensión y estamos aquí para ayudar en lo que sea necesario.

    Estaré atento a tu respuesta.,

     Jonathan

    ----------*

    Tu opinión es muy importante para nosotros! Si esta respuesta resolvió tu consulta, por favor haz clic en ''. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones.

    0 comentarios No hay comentarios

Su respuesta

Las respuestas se pueden marcar como respuestas aceptadas por el autor de la pregunta, lo que ayuda a los usuarios a conocer la respuesta que resolvió el problema del autor.