ASP.NET MVC 4 – Parte II
May 24, 2015
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>[email protected]</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