DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando...

32
DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

Transcript of DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando...

Page 1: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

DESARROLLO DE APLICACIONESII

ASP.Net MVC

Creando el controladorAdminPeliculasController

Mtro. Yonatan Eric Cruz Hernández

Page 2: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

Agregando el controlador

• Siguiendo esta presentación podremos crearel controlador AdminPeliculas que será laclase que donde se podrán agregar nuevosregistros (películas), editarlos y eliminarlos,posteriormente se definirá un rol de acceso aeste controlador.

Page 3: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• Agregamos el controlador AdminPeliculas:

• Agregamos el usign de Peliculas_4.Models;• Declaramos una instancia de nuestro EntityModel

llamado PeliculasEntities db = newPeliculasEntities();

Page 4: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• Crear la vista del Index que muestre la lista delas películas, similar a la práctica anterior deGéneros:

• Entonces el código de

la acción Index() queda:

Page 5: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

Agregar el link en el Site.Master• Agregamos el link en el archivo Site.Master

para agregar el botón Administrar:

• Ejecutamos el proyecto y revisamos elresultado:

Page 6: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

Personalizando la vista

• Personalizamos el código de la vista generadade tal manera que se vea como en la siguienteimagen:

Page 7: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

ResultadoVista Index del controlador AdminPeliculas.

Page 8: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

AHORA PREPÁRATEViene lo más interesante

Page 9: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

Creando el formulario

• Vamos a crear el formulario para insertar unnuevo registro.

• Creamos la acción Crear()

Si agregamos la vistanos muestra el siguienteresultado al depurar elproyecto:

Page 10: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• En este caso nos pide PeliculaId(autoincrement), GeneroId (se tiene queespecificar el id del genero).

• Lo que necesitamos es No mostrar el campode PeliculaId y en lugar de GeneroId que nosmuestre una lista de los generos disponiblespara poder seleccionar el género de la películaa agregar.

¿CÓMO HACEMOS ESTO?

Page 11: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• Crear un modelo especial para la vista Crear yEditar (acciones dentro del controllerAdminPeliculas), porque ambas utilizarán elmismo formulario.

• Agregamos una carpeta llamada ViewModel anuestro proyecto:

Page 12: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• Debemos crear un nuevo modelo que seráuna clase llamada: AdminPeliculasViewModeldentro de la carpeta creada.

Page 13: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

Código de AdminPeliculasViewModel

• El código de este modelo (clase) quedaría así:

Page 14: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• NOTA: Después de crear la claseAdminPeliculasViewModel debemos volver agenerar el proyecto o compilar para usar laclase como otro modelo más.

• Agregar el espacio de nombres usingPeliculas_4.ViewModel al controladorAdminPeliculas.

• Posteriormente la acción (método) crearquedará de la siguiente forma:

Page 15: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• Nota: Si creaste la vista Crear.aspx, elimina esearchivo.

• Creamos la vista para la acción Crear() de la clasePeliculas.ViewModel.AdminPeliculasViewModelcon contenido Create, esto para indicar que elformulario será para crear un nuevo registro.

Page 16: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

Si observas el código que segenera, solo declara el formularioy el botón SUBMIT, si lo ejecutas,no mostrara los cuadros de textodonde se ingresarán los datos.

Necesitamos entonces, crearnuestra propia plantilla paraeditar o crear un objeto de laclase Pelicula.

Para ello, creamos una carpetallamada EditorTemplates enViews/Shared donde se encuentraSite.Master.

Page 17: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• En esa carpeta creamos una vista llamadaPelicula (mismo nombre de la entidad).

Page 18: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• En crear vista, seleccionamos Crear una vistaParcial (.ascx), clase de datosPeliculas_4.Models.Pelicula, contenido deview Edit.

Page 19: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• Al código generado le eliminamos algunaspartes, ya que solo necesitamos los campos detexto necesarios, eliminando el txt paraPeliculaId y el txt Disponible y generamos elListBox con la lista de los géneros, quedandoel código de la siguiente manera:

Page 20: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández
Page 21: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• Y el código de la vista Crear.aspx queda de lasiguiente forma:

Page 22: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• Ejecutamos, vamos aAdministrar, elegimosRegistrar nueva película yobtenemos:

• Ya tenemos nuestroformulario para crear (loutilizaremos también paraeditar), pero si intentamosguardar no lo hará, ya queno hay una acción quetome los datos enviadospor el form.

Page 23: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

Validando los datos

• Se necesita validar los datos ingresados por elusuario, donde los campos no pueden ser nullo validar el tipo de dato ingresado.

• La validación deberá realizarse cuando elusuario ingrese los datos.

• Vamos a crear una parte de la clase Pelicula(partial class Pelicula). En la carpeta Models,agregamos la clase llamada Pelicula.cs

Page 24: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• Y el código generado es similar al siguiente:

Page 25: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández
Page 26: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• Y para que la validación se realice en nuestroformulario agregamos el siguiente código a lavista Pelicula.ascx

• Nótese que Peliculas_4 es el nombre delproyecto, modificarlo por el suyo.

Page 27: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• En la vista Crear.aspx reemplazamos el códigoque valida el formulario:

<% using (Html.BeginForm()) {%>

<%: Html.ValidationSummary(true) %>

• Por el código que habilita la validación por ellado del cliente (navegador):

<% Html.EnableClientValidation(); %>

<% using (Html.BeginForm()) {%>

Page 28: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• Si ejecutamos nuestro proyecto, nos situamosen http://localhost:xx/AdminPeliculas/Crear eingresamos un título, lo eliminamos ypasamos a otro txt, podremos ver que lavalidación funciona.

Page 29: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• Ya que tenemos la validación, crearemos otrafunción en el controlador que reciba los datospor medio de POST (similar a GET), la acciónquedara así (debajo de la acción Crear()):

Page 30: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández
Page 31: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández
Page 32: DESARROLLO DE APLICACIONES II - Randy Pausch." · DESARROLLO DE APLICACIONES II ASP.Net MVC Creando el controlador AdminPeliculasController Mtro. Yonatan Eric Cruz Hernández

• Ejecutamos el proyecto y creamos un nuevoregistro, Listo, ya podemos crear nuevosregistros con validación de datos.

• Solo nos falta la acción de Editar y eliminar,dicha acción utiliza el mismo formulario y lavalidación creados.