Um modelo (Model) notifica suas visões e controladores associados quando há uma mudança em seu estado. Esta notificação permite que as visões produzam saídas atualizadas e que os controladores alterem o conjunto de comandos disponíveis. Uma implementação passiva do MVC monta estas notificações, devido a aplicação não necessitar delas ou a plataforma de software não suportá-las. Geralmente as classes que representam suas entidades e as que te ajudam a armazenar e buscar os dados são chamadas de Modelo (Model), o modelo que tem acesso a toda e qualquer informação sendo essa vinda de um banco de dados ou qualquer outra fonte que você defina.
Criando Modelos
1 – Usando o Template gerado pelo Visual Studio vamos trocar as Viewbags que passam informação entre o controlador e a visão por modelos. Para isto adicione uma classe chamada AboutModel.cs:
2 – Crie três simples propriedades na classe para armazenar os dados para o modelo, lembrando que você pode utilizar algum framework de persistência para gravar os dados em um banco de dados ou outra fonte de dados de acordo como desejar:
3 – Abra o controlador e crie uma instancia do modelo, vamos alimentar o modelo de um modo estático neste primeiro momento, logo após você só precisa passar o modelo para visão:
4 – Para acessar o modelo você precisa declara-lo em sua visão então pode acessar qualquer uma de suas propriedades, abra o arquivo de visão e o modifique de acordo com o código abaixo:
5 – Rode sua aplicação e clique no menu About para ver o funcionamento, você pode notar que a visão utiliza os dados do modelo que são manipulados através do controlador.
Exemplo:
Neste exemplo criamos um modelo básico através de uma classe, alimentamos seus dados manualmente, lembrando que ainda não existe nenhum tipo de persistência para gravar os dados. Este é um simples exemplo do funcionamento do padrão modelo-visão-controlador.
C#
Modelo
AboutModel.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MeuMVC.Models
{
public class AboutModel
{
public string Site { get; set; }
public String Linguagem { get; set; }
public string Mensagem { get; set; }
}
}
Visão
About.cshtml
@model MeuMVC.Models.AboutModel
@{
ViewBag.Title = "Sobre";
}
<h2>@Model.Site</h2>
<h3>@Model.Linguagem</h3>
<p>@Model.Mensagem</p>
Controlador
HomeController.cx
using MeuMVC.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MeuMVC.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
// Cria instancia do modelo
AboutModel modelo = new AboutModel();
// Alimenta dados ao modelo
modelo.Site = "Desenvolvimento Aberto";
modelo.Linguagem = "ASP.NET MVC- C#";
modelo.Mensagem = "Rê, Você é a página mais linda que o destino escreveu na minha vida.";
// adiciona modelo a visão
return View(modelo);
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
}
}






