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?

ASP.NET
ASP.NET
Conjunto de tecnologías de .NET Framework para la creación de aplicaciones y servicios web XML.
48 preguntas
0 comentarios No hay comentarios
{count} votos

1 respuesta

Ordenar por: Muy útil
  1. Jonathan Pereira Castillo 13,735 Puntos de reputación Proveedor de Microsoft
    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.