Escolar Documentos
Profissional Documentos
Cultura Documentos
NET MVC 4
Aunque no hayas estudiado patrones de diseo, es altamente probable de que, si te
dedicas a la programacin, hayas odo hablar en alguna ocasin del Modelo-VistaControlador. Se trata de uno de los patrones de diseo ms ubicuos y populares, que
persigue la filosofa de crear un patrn de tres capas que diferencian las labores de la
aplicacin en:
VISTA: Muestra la informacin al usuario y permite que ste interacte con ella,
proporcionando datos, modificndolos, solicitando su modificacin o
simplemente, consultndolos. En resumen, cmo se muestra la
informacin en pantalla.
Ahora slo debemos esperar pacientemente a que el proyecto se genere con los
recursos y componentes por defecto. Dependiendo del entorno de desarrollo, esto
puede tardar unos cuantos minutos, por lo que esperaremos a que el proceso finalice
para ponernos manos a la obra.
Pese a que todas ellas son importantes, haremos especial mencin a tres de ellas:
Si todo es correcto, se abrir una nueva ventana con el contenido de nuestra aplicacin
en la direccin http://localhost:XXXXX (el puerto ser aleatorio), que mostrar algo
similar a lo siguiente:
Como podemos observar, nuestra aplicacin se compone por una pgina de inicio en la
que podemos diferenciar diferentes secciones:
Una parte superior con una imagen que se corresponder con el logo de la
aplicacin, un enlace de registro y otro de entrada a la aplicacin y tres enlaces:
uno a la pgina de inicio (la actual), otra de Acerca de y una ltima de datos
de contacto. Quedmonos con el detalle de que si pulsamos por ejemplo el
enlace About nos trasladar a la rutalocalhost/Home/About. Luego lo
explicaremos con ms detalle.
Desgranemos ahora MVC paso a paso para aprender cmo funciona ASP.NET
comenzando por el principio: la invocacin HTTP.
Controlador
Si abrimos la carpeta Controllers observaremos la existencia de dos
clases: AccountController yHomeController. La primera clase se encargar del gestin
de cuentas que MVC proporciona por defecto, pero por ahora lo ignoraremos vilmente.
Centrmonos pues en la clase HomeController y abramos el fichero. Su contenido es el
siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
return View();
}
}
return View();
About es el nombre del nombre del mtodo del controlador que manejar la
peticin.
Seguramente hemos entendido perfectamente las dos operaciones realizadas, pero del
mismo modo, seguro que nos asaltan dos dudas asociadas: qu es eso
del ViewBag? Y qu vista est asociada al mtodo del controlador?
Vista
Comenzaremos por explicar qu es el ViewBag. Si conocemos las versiones anteriores
de .NET, podramos explicarlo como una evolucin del objeto ViewData que
centraliza y simplifica el transporte de informacin entre el controlador y la vista.
1
2
3
4
5
6
7
8
1
2
3
4
<p>
Modelo
Vale, hemos visto el controlador y la vista, pero dnde est el modelo? La respuesta
directa es: en ningn lado.
No hemos hecho uso de l, ya que hemos puenteado su funcin a travs
del ViewBag. Este componente est pensado para pasar a la vista informacin
auxiliar no relacionada con el negocio, tales como datos calculados, el ttulo de la
pgina e informacin similar.
Si queremos utilizar datos de negocio, haremos uso del modelo, para lo cual
necesitaremos crear una clase para ello. Nos dirigiremos, por lo tanto, a la
carpeta Models, haremos click derecho sobre ella y seleccionaremos la opcin Add >
Class.
1
2
3
4
5
6
7
Hecho esto, nuestro modelo est listo. Es hora que nuestro controlador haga su trabajo.
Controlador y Modelo
Vimos en la descripcin del patrn de diseo que la peticin del usuario instancia el
controlador, que se encarga de rellenar el modelo y de crear la vista.
Hemos visto el segundo paso previamente cuando descubrimos que el valor devuelto
por el controlador es una invocacin al mtodo View() que se encargaba de crear la
vista, pero an nos quedan tres flecos sueltos:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Lo que hacemos es simple: crear un nuevo modelo, rellenar sus propiedades y pasarle
ese mismo modelo como parmetro al mtodo View(), de modo que ste pueda
acceder a los datos contenidos en l.
Por supuesto, en la prctica seguramente realizaremos un procesamiento mucho ms
complejo (invocacin a base de datos, enlazado dinmico, etc.), pero nuestro objetivo
es mostrar el funcionamiento bsico de MVC, por lo que ser suficiente por ahora.
Realizada la conexin entre controlador y modelo, es hora de pasar a la vista para
mostrar el contenido del modelo.
Vista y Modelo
Hemos visto que desde el controlador ha sido necesario referenciar el modelo que
queremos utilizar (su espacio de nombres). Desde la vista realizaremos la misma
operacin.
Sin embargo, las vistas son plantillas DHTML, por lo que la clusula using seguida del
espacio de nombres no nos servir. Para realizar la referencia, haremos uso
nuevamente de la arroba (@) seguida de la palabra reservada model (en minsculas) y
el nombre de la clase que representa el modelo que queremos representar. Por lo
tanto, abriremos el fichero Views/Home/About.cshtml y aadiremos el siguiente cdigo:
@model MvcApp.Models.AboutModel
1
2
3
4
5
6
7
8
9
10
11
<p>
Nombre: @Model.Nombre (CC) @Model.AnioActual
</p>
<p>
</p>
<p>
E-Mail: @Model.Email
</p>
http://danielggarcia.wordpress.com/2013/11/11/introduccion-a-asp-net-mvc-4/