ASP.NET MVC 4 - Parte II - Views

Post on 24-May-2015

282 views 1 download

description

Foca em Views do ASP.NET MVC 4 fornecendo um overview, conceitos sobre: ViewData, ViewBag, Razor, HtmlHelpers e Link Helpers

Transcript of ASP.NET MVC 4 - Parte II - Views

ASP.NET MVC 4 – Parte II

View Overview

ViewData ViewBag

Razor Overview Html Helpers Link Helpers

View Cartão Visita da

Aplicação

Responsável por prover uma interface de usuário para o usuário.

Examina o conteúdo do modelo entregue pelo controller e transforma em HTML.

View Não são acessíveis

diretamente, sempre renderizadas através de um controller.

Por convenção há uma view para cada action do controller.

Esta convenção pode ser sobescrita, definindo uma nova view de retorno.

ViewEx:

public ActionResult Index() {

return

View("~/Views/Example/Index.cshtml");

}

Controller - > View

ActionResult – Listas, Tipos Primitivos, JSON etc.

ViewData

ViewBag

ViewData

Passa informações do Controller para a View através de ViewDataDictionary.

Pode definir e recuperar valores usando a sintaxe de dicionário.

Ex: ViewData[“CurrentTime”] = DateTime.Now;

ViewData – Controller Ex:

public class HomeController: Controller{

var aluno = new Aluno {

Nome = “Aluno1”};

ViewData[“Aluno”] = aluno;}

ViewData – View

Requer typecasting quando associada a tipos complexos.

@model Projeto.Models.Aluno

@{ var viewDataVariavel = ViewData[“Aluno”] as Aluno;

}

ViewBag

Passa informações do Controller para a View baseada na propriedade dinâmica do C# 4.0

Não requer typecasting.

ViewBag

Ex: public class HomeController: Controller{

var aluno = new Aluno {

Nome = “Aluno1”};

ViewBag.Aluno = aluno;}

ViewBag

Ex: @model Projeto.Models.Aluno

@{ var viewDataVariavel = ViewBag.Aluno;

}

Razor View Engine lançado no

ASP.NET MVC 3

Atende os apelos mais requisitados a equipe ASP.NET MVC: clareza, leveza e com sintaxe simples.

Prover sintaxe simples e menos verbosa.

Razor @ - chave transição.

Utilizada na transição de Html para o código

Ex: <h1> Listando @item.length items </h1>

Razor Como exibir o endereço de

e-mail. Razor conhece os patterns de e-mail renderiza sem problemas.

Ex: <span>ste@gmail.com</span>

Razor Suporta blocos de código.

Ex:@foreach(var item in items){ <li> Nome: @item</li>}

@{ string teste = “Teste”; ViewBag.Title = “Mais Teste”;}

Razor Suporta comentários

Ex:@* Comentário tanto linha como multilinha*@

Razor Combina código com html.

Ex:<li> @Html.LabelFor(m => m.UserName) @Html.TextBoxFor(m => m.UserName)</li>

Razor@{var items = new string[] {“um", “dois", "tres"};}<html><head><title>Exemplo</title></head><body><h1>Listando @items.Length items </h1><ul>@foreach(var item in items) {<li>The item name is @item.</li>}</ul></body></html>

Razor Suporta o conceito de

Sections, que prover region de conteúdo com Layout.

Razor@section Header {

<div class="view">

@foreach (string str in new [] {"Home", "List", "Edit"}) {

@Html.ActionLink(str, str, null, new { style = "margin: 5px" })

}

</div>

}

Helpers São métodos que podem ser

chamados dentros de bloco de código para facilitar a construção da view.

Html Helpers, Link Helpers , Ajax Helpers, Url Helpers.

Html Helpers São métodos que podem ser

chmados dentros de códigos de bloco e geram como saíd html.

São equivalentes ao WebForms Controls, mas não possuem eventos associados nem viewstate.

Html Helpers Extremamente mais leves

que os WebForms Controls

Intellisense

Ex: @Html.Label, @Html.TextBox , @Html.TextArea.

Links Helpers Helpers voltados para

trabalhar com links.

Ex: @Html.ActionLink, @Html.RouteLink