ASP NET – Modelo (Model) – MVC – C#

Publicado: 14 de maio de 2015 em C#

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:

Classe - Modelo -AboutModel

Classe – Modelo -AboutModel

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:

Modelo - Propriedades

Modelo – Propriedades

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:

Contoller - Controlador/Visão

Contoller – Controlador/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:

View - Utiliza Modelo

View – Utiliza Modelo

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.

Visão - MVC

Visão – MVC

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();
        }
    }
}

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s