Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Página 1 de 17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
CFGS Desarrollo de aplicaciones Web. 2020-2021
CIFP César Manrique Desarrollo web en entorno servidor. Inma Martinez
UT01. ASP .NET MVC
• Sin autenticación
Página 2 de 17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
CFGS Desarrollo de aplicaciones Web. 2020-2021
CIFP César Manrique Desarrollo web en entorno servidor. Inma Martinez
UT01. ASP .NET MVC
Ejecutamos el comando
Página 3 de 17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
CFGS Desarrollo de aplicaciones Web. 2020-2021
CIFP César Manrique Desarrollo web en entorno servidor. Inma Martinez
UT01. ASP .NET MVC
return View();
Como retorna View() sin argumentos, sabemos que el nombre de la vista coincidirá con el nombre del método
(Index.cshtml) y que estará en la carpeta Views/Home, dado que este método pertenece al controlador
HomeController.
Página 4 de 17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
CFGS Desarrollo de aplicaciones Web. 2020-2021
CIFP César Manrique Desarrollo web en entorno servidor. Inma Martinez
UT01. ASP .NET MVC
@{
Layout = null;
Como no hemos indicado Layout null, ni tampoco hemos especificado un layout concreto, se aplica el layout por
defecto.
@{
El resto del código simplemente “pinta” una página de bienvenida, utilizando bootstrap.
3.3 _Layout.cshtml
<!DOCTYPE html>
<html>
<head>
<script src="~/Scripts/modernizr-2.8.3.js"></script>
</head>
<body>
<div class="container">
<div class="navbar-header">
<span class="icon-bar"></span>
Página 5 de 17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
CFGS Desarrollo de aplicaciones Web. 2020-2021
CIFP César Manrique Desarrollo web en entorno servidor. Inma Martinez
UT01. ASP .NET MVC
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
</ul>
</div>
</ul>
</div>
</div>
</div>
@RenderBody()
<hr />
<footer>
</footer>
</div>
<script src="~/Scripts/jquery-3.3.1.min.js"></script>
Página 6 de 17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
CFGS Desarrollo de aplicaciones Web. 2020-2021
CIFP César Manrique Desarrollo web en entorno servidor. Inma Martinez
UT01. ASP .NET MVC
<script src="~/Scripts/bootstrap.min.js"></script>
</body>
</html>
Mediante @RenderBody() se ubica la vista que estamos creando dentro del Layout.
Vamos a añadir alguna imagen a la vista y un par de links a Action Method, del mismo controlador y de otro
controlador diferente.
• @Html.ActionLink(“texto”, “method”) para generar una URL a un método del mismo controlador
• Hay veces que si queremos anidar contenido HTML dentro del elemento <a> no nos interesa utilizar
@Html.ActionLink. En ese caso podemos crear un <a> normal, utilizando @Url.Action(“method”;
“controller”) para su atributo href.
• Ejemplo 1.
Página 7 de 17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
CFGS Desarrollo de aplicaciones Web. 2020-2021
CIFP César Manrique Desarrollo web en entorno servidor. Inma Martinez
UT01. ASP .NET MVC
Página 8 de 17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
CFGS Desarrollo de aplicaciones Web. 2020-2021
CIFP César Manrique Desarrollo web en entorno servidor. Inma Martinez
UT01. ASP .NET MVC
Ejemplo 2:
• Utilizar @Url.Content(“...”)
• Indicar una ruta comenzando por el carácter ~ en este caso Razor ya crea una ruta absoluta incluyendo el
contexto de la aplicación.
Página 9 de 17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
CFGS Desarrollo de aplicaciones Web. 2020-2021
CIFP César Manrique Desarrollo web en entorno servidor. Inma Martinez
UT01. ASP .NET MVC
4.1 En el panel de exploración, Add ---Add New Item---Fíjate que esto es un ejemplo
orientativo y podría cambiar en la versión actual. Añadimos clases del modelo
Página 10 de 17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
CFGS Desarrollo de aplicaciones Web. 2020-2021
CIFP César Manrique Desarrollo web en entorno servidor. Inma Martinez
UT01. ASP .NET MVC
Página 11 de 17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
CFGS Desarrollo de aplicaciones Web. 2020-2021
CIFP César Manrique Desarrollo web en entorno servidor. Inma Martinez
UT01. ASP .NET MVC
Página 12 de 17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
CFGS Desarrollo de aplicaciones Web. 2020-2021
CIFP César Manrique Desarrollo web en entorno servidor. Inma Martinez
UT01. ASP .NET MVC
Página 13 de 17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
CFGS Desarrollo de aplicaciones Web. 2020-2021
CIFP César Manrique Desarrollo web en entorno servidor. Inma Martinez
UT01. ASP .NET MVC
Vamos a mapear estas dos clases en nuestro modelo de clases, anotando las propiedades que son Foreign Key
//------------------------------------------------------------------------------
// <auto-generated>
//
// </auto-generated>
//------------------------------------------------------------------------------
namespace Peliculas_MartinezI.Models
using System;
using System.Collections.Generic;
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2214:DoNotCallOverridableMethodsInConstructors")]
public film()
Página 14 de 17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
CFGS Desarrollo de aplicaciones Web. 2020-2021
CIFP César Manrique Desarrollo web en entorno servidor. Inma Martinez
UT01. ASP .NET MVC
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
//------------------------------------------------------------------------------
// <auto-generated>
Página 15 de 17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
CFGS Desarrollo de aplicaciones Web. 2020-2021
CIFP César Manrique Desarrollo web en entorno servidor. Inma Martinez
UT01. ASP .NET MVC
// Este código se generó a partir de una plantilla.
//
// Los cambios manuales en este archivo pueden causar un comportamiento inesperado de la
aplicación.
// Los cambios manuales en este archivo se sobrescribirán si se regenera el código.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Peliculas_MartinezI.Models
{
using System;
using System.Collections.Generic;
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<film> film { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<film> film1 { get; set; }
}
}
• En el constructor inicializamos un HashSet que contendrá los films que se recuperen de BD según la
relación 1:N.
• Hemos anotado con [Key] la propiedad IdKey, que se corresponde con la PK (clave primaria en la tabla)
Página 16 de 17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
CFGS Desarrollo de aplicaciones Web. 2020-2021
CIFP César Manrique Desarrollo web en entorno servidor. Inma Martinez
UT01. ASP .NET MVC
• Tenemos una propiedad virtual de tipo Icollection<film> que nos devolverá las péliculas relacionadas.
NOTA: veremos cómo, en la clase film, especificamos la FK (foreign key para que haga referencia a
“Idioma”, “Language”)
Página 17 de 17