Creación y Navegación de Páginas con Listados y Formularios en Sitios Web
Resumen
¿Cómo crear la estructura para un sitio de productos?
Para construir un sitio web que permita manejar productos, es crucial tener una estructura organizada para navegar entre páginas y gestionar contenido. En este tema, exploraremos cómo configurar páginas para listar y crear productos, aprovechando componentes reutilizables y rutas eficientes.
¿Cómo listar productos en el menú de navegación?
Crear una carpeta para productos:
Dentro de la estructura de páginas, añade una carpeta llamada Products.
Establecer un componente para listar productos:
Dentro de la carpeta Products, crea un componente llamado ProductsList.
Asegúrate de diferenciar entre qué es un componente y qué es una página al nombrarlos.
Agregar la página al menú de navegación:
Usa un componente de enlace de navegación para agregar nuevas páginas al menú.
El componente debería contener la ruta donde navegar y el nombre que se mostrará en el menú:
<ahref="/products/list">Lista de productos</a>
Verifica y refresca el sitio para asegurarte de que los cambios se reflejan en el menú.
¿Cómo integrar filtros y componentes adicionales?
Incorporar filtrado en la lista de productos:
Asegúrate de que la página para listar productos incluya filtros para facilitar la búsqueda.
Puedes añadir elementos adicionales para enriquecer el sitio y hacer las consultas más precisas.
Llamar a los componentes desde la ruta:
Al importar componentes, asegúrate de definir correctamente las rutas:
importProductsListfrom'./components/ProductsList'
Verifica que cada vez que agregues un componente, su ruta sea la correcta para evitar errores.
¿Cómo crear productos y gestionarlos desde el componente?
Establecer un componente para crear productos:
Crea un componente llamado CreateProduct en Products.
Configura una página con la siguiente ruta:
<ahref="/products/create">Crear producto</a>
Usa este componente para manejar la creación de nuevos productos en el sitio.
Configurar navegación entre componentes:
Añade enlaces que permitan la navegación hacia sitios existentes y nuevos:
<ahref="/products/create">Crear producto</a>
Implementa un enlace que permita regresar a la lista de productos después de crear uno nuevo.
Uso de un gestor de navegación:
Introduce la inyección de dependencias utilizando un manejador de navegación para manejar rutas cuando se crea un nuevo producto:
import{ inject }from'dependency-injection-package';@InjectclassNavManager{navigateTo(route){// Implementación de la ruta}}
Utiliza navigateTo para redirigir automáticamente tras crear un producto.
Desafío: Completa tus datos:
Llena la base de datos con productos en varias categorías para robustecer el proyecto.
No dudes en ser creativo al añadir productos a tu base de datos y experimenta con diferentes estrategias de navegación. ¡La práctica es esencial para desarrollar un sitio robusto y funcional!
Me agrada como trabaja las cosas Blazor.
En mi primer trabajo utilizaba webforms y comparado con esto estamos en la gloria jajaja. Añado que me gusta trabajar con Angular y este framework me hace sentir muy cómodo con su manera de funcionar.
Me fascina este framework, alguien sabe como esta la actualidad de Blazor?, le veo un gran futuro, pero no se si ha alcanzado popularidad como deberia, lo siento poderoso.
A mi por el contrario me parece obsoleto, siento que Blazor rescata cosas de el motor de plantillas de Blade con Laravel y El Angular Data Binding, de momento es sencillo Blazor pero no lo elegiría para realizar apps teniendo otras opciones mejores.
lo veo como react poseen esquema parecido, teniendo en cuenta las ultimas actualizaciones
Si les aparece un unhandled error al momento de crear el producto, NO DESESPEREN. Tienen que crear una opción vacía en la categoría porque al parecer (o en mi caso), tomaba la primera categoría como un id vacío. Así me quedó el código.
<div class="form-group"><label>Categoría:</label><InputSelect @bind-Value="oProduct.CategoryId"class="form-control"><option value="">Seleccione una categoría...</option> @foreach(var category inCategories){<option value="@category.CategoryId">@category.CategoryName</option>}</InputSelect></div>
eso tambien me paso a mi, solo le puse un seleccione categoria para que oblique a cambiar de item en el combo.
me pasaba lo mismo sin embargo con la solucion de un compañero en la clase anterior lo solucione desde la funcion
Navigate Manager, increible.
En la lista de categoría se puede hacer que al seleccionar la opción Seleccione categoría se muestren todos los productos sin filtrar.
Cual es la diferencia en usar <NavLink> y en otros <a href>
Cuando se debe usar <InputSelec> o <select><option> ?
Hola, Carlos
Es solo cuestión de lenguaje. Como habrás visto, en un mismo proyecto puedes hacer uso de más de un lenguaje para manipular los elementos.
En el caso específico del Select y el InputSelect se trata del mismo tipo de control pero Select es HTML puro e InputSelect es de Razor, por lo que será posible manipularlo con las herramientas que nos provee blazor y el código c#.
Al final, aún cuando uses InputSelect, al momento de ser publicado y consumido como página web podrás ver en el código fuente que aparece un simple Select
Hasta el momento el curso va muy bien. realmente he aprendido mucho.
Gracias profe, haces las clases muy fáciles de entender.
Me parece que Blazor tiene analogía importante con los componentes de React Native.
Excelente curso!
Esto es genial
a alguien le da error cuando inserta un producto, que en el modelo le llega null el id de category?
Hola Abi
Estás asignando el ID del category antes de guardarlo? esto debería hacerse en el constructor del category si mal no recuerdo.
Compañeros una consulta como puede utilizar un inputselect con un int ya que veo que el inputselect funciona con string y con enum Agradezco me puedan colaborar