Laboratório 3 Controllers

Documentos relacionados
PROJETOS EXEMPLO DE ASP.NET MVC

Aplicação MVC com Class Library

Criação de uma aplicação Web ASP.NET MVC 4

Aplicação ASP.NET MVC Cliente de Aplicação Web API

Criação de uma aplicação Web ASP.NET MVC usando Code First

Many-to-many. Mapear no Context Na classe Context.cs, dentro do método OnModelCreating, adicionar o trecho

Aplicação ASP.NET MVC Cliente de Aplicação Web API (com Class Library)

Bem vindos ao Curso de ASP.NET MVC 3 Razor e C#

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 4 PROF. EMILIO PARMEGIANI

Aplicação Web Zend Framework 2 Cliente de Aplicação Asp.Net Web API

Aula07 Forms Authentication

Login Google. Copie a SSL URL, que no meu caso é

Construindo Aplicações com ASP.NET MVC 2.0 Aula 03 Luiz Alberto Ferreira Gomes. Ciência da Computação da PUC Minas

VALIDAÇÃO DE DADOS COM O PADRÃO MVC

Login. Criar uma pasta Repositories na raiz do projeto. Criar uma classe Funcoes.cs dentro da pasta Repositories.

Tutorial de Aplicação Simples usando Web Forms e MySQL. Luiz Eduardo Guarino de Vasconcelos

Construindo Aplicações com ASP.NET MVC 2.0 Aula 02 Luiz Alberto Ferreira Gomes. Ciência da Computação da PUC Minas

Resumo Aplicação MVC Contoso University

ASP.NET Web Services. José Antônio da Cunha IFRN

Construindo uma ASP.Net MVC 4 Web Application usando Bootstrap no front-end

Publicar uma aplicação ASP.NET Core com base de dados SqlServer no Azure usando Visual Studio e um perfil para publicação (publish profile)

curso de ASP.NET MVC

Criação de uma aplicação Web ASP.NET MVC5 usando Code First

REST. Representational State Transfer. É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades.

O JasperReports Studio é uma ferramenta de software que oferece um ambiente visual para criar relatórios para a plataforma Java. É open source.

Login Facebook. Continuação do passo-a-passo Login Google

Para baixá-lo entre no site : Selecione a aba Downloads ; Clique no link: Microsoft Visual C# Express 2010; Por meio desse

Aplicação MVC + Entity + MySQL

C# (C Sharp) - ASP.NET MVC Avançado

Banco de dados Northwind (sample database clique aqui para baixar) em execução ou SqlExpress. Compreensão de C # e ASP.NET

Consulta de endereço através do Cep

Desenvolvimento de Aplicações Web com Ruby on Rails

WebAPI. Comente o bloco system.data e entityframework (caso existam) no web.config

Aula 06 Usando controles em ASP.NET

Configurando uma aplicação Struts

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

Anexação de tabelas, inserção de pontos, geração de polígonos e cálculo de áreas em ArcView

Connection String usada por uma Class Library

Nota de Aplicação. Escrita em Banco de Dados SQL com o Vijeo Citect 1.0. Suporte Técnico Brasil. Versão:

Associação 1:1. Baseado no Diagrama de Classe a seguir, iremos criar as classes de Modelagem que compõem a Associação de Piloto com Carro.

Sistemas de Informações Geográficas

Curso Autodesk Inventor CADesign Parte 2

2 Criar uma Enterprise Application que num módulo EJB irá conter um ou vários Beans.

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

JavaFX Classe de Controle e Eventos. Prof. Vicente Paulo de Camargo

Guia para criar aplicações simples em APEX/ Guide to create simple Apex applications (perte I)

ASP.NET MVC. View Engine: linguagem usada para gerar código HTML. Duas opções: Razor View Engine ou ASPX View Engine. Selecionar Razor.

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET. Prof. Emilio Parmegiani

Adicionando a classe de Mapeamento Faça o download do arquivo Descompacte-o

Conexão com Banco de Dados

Lista de exercícios I - RESPOSTAS Servlets e banco de dados

Lists. Aproveitando o projeto WebLogin, vamos ver como implementar alguns componentes de lista (DropDownList, RadioButtonList e CheckBoxList).

Selecione o WPF Application dentro de Templates > Visual C# > Windows

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

Android Banco de Dados. Ivan Nicoli

Continuação... Criando a Interface e adiante

Criar uma solução com um link Serviços RIA entre os projetos

1. Base de Dados criada automaticamente pelo Entity Framework. 2. Correspondência entre classes da aplicação Asp.Net e tabelas da base de dados

Como criar um banco de dados usando o mysql

Table of Contents

JOHN MAYER - PARADISE VALLEY

Tarefa Orientada 3 Aplic. Manutenção de Produtos Text Box

Java Server Faces Navegação de

JavaFX Classe de Controle e Eventos. Prof. Vicente Paulo de Camargo

Laboratório 3 WCF RIA Services

NOTA: Neste tutorial foi utilizado o Visual Studio 2010 para criar o Projeto Web no qual iremos aplicar os temas e os skins.

Continuação... Criando a Interface e adiante

Todos os direitos reservados e protegidos pela Lei nº9.610, de 10/02/1998.

Login. Criar um novo website File > New > WebSite Framework 4.5 Visual C# ASP.NET Empty Web Site Nome do projeto: WebLogin

Exercícios de fixação: Listas

Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual

Orientação a Objetos Programação em C++

NOTA: Neste tutorial foi utilizado o Visual Studio 2010 para criar o Projeto Web no qual iremos realizar os passos abaixo.

Desenvolvimento para Web em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM Lamarck Heinsch Mestrando PPGI/CT/UFSM

Sisorc. Tutorial de Criação de Novos Módulos

Frameworks - Grails. Aécio Costa

LAB12: Componentes ASP.NET

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 1 PROF. EMILIO PARMEGIANI

Visual Studio+SQL Server Express LocalDB ANTONIO LUIS

Programação para web HTML: Formulários

Guia do usuário. Versão Desenvolvido pela ofcdesk, llc. Todos os direitos reservados.

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

Minicurso de C# por François Dantas Oliveira. Agosto de 2009

Integração por Web Services

Começando com o AWS IoT

Nota de Aplicação. Relatório em HTML no Vijeo Citect 1.0. Suporte Técnico Brasil. Versão:

Comparado com outros mecanismos de Integração/Interfaces no mercado, o Mirth faz algumas coisas de forma diferente:

TRABALHO FINAL 20 Pontos

LAB 18: ASP.NET e Web Services

Análise e Projeto Orientados a Objetos

Passo 1: inicie o Protegé e abra o exercício da aula anterior, sobre slots, de número 6, que foi salvo anteriormente com o nome ex_slot_06.

Google Chart. Adicionando Action No PublicoController, adicionar o trecho. Adicionar View Botão direito na Action acima, Add View.

Tarefa Orientada 4 Aplic. Manutenção de Produtos - ComboBox

Introdução à Engenharia ENG1000

Prática em Laboratório N.04 (Parte 01) Criando uma aplicação composta a partir de um serviço Web

Construindo Aplicações com ASP.NET MVC 2.0 Aula 01 Luiz Alberto Ferreira Gomes. Ciência da Computação da PUC Minas

Aplicações Web MVC. IFRN Instituto Federal de Educação, Ciências e Tecnologias do Rio Grande do Norte.

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Transcrição:

S2B ASP.NET MVC 1 Laboratório 3 Controllers Neste laboratório é apresentado o uso de controladores, ações e objetos de resultado. 1. Uso dos objetos Request e Response 1.1 No Visual Studio, abra a sua solução do laboratório 02 ou descompacte e abra a solução disponibilizada na página de materiais do curso 1.2 Abra o controlador HomeController e adicione o seguinte método de ação: public void Agente() string agent = Request.Browser.Browser; string useragent = Request.UserAgent; string source = Request.UserHostAddress; Response.Write("<H1>Hello MVC!</H1>"); Response.Write("<h2>Welcome, you are using "); Response.Write(agent); Response.Write(" and your address is "); Response.Write(source); Response.Write("! </h2>"); Response.Write("<h2>User agent: "); Response.Write(useragent+"</h2>"); 1.3 Execute a aplicação e teste o método Agente (http://localhost:<porta>/home/agente). 2 Uso de parâmetros 2.1 Adicione ao HomeController dois novos métodos de ação: public void HelloName(string name) string value = HttpUtility.HtmlEncode(name); Response.Write("<H1>Hello "); Response.Write(value); Response.Write("!</H1>"); public void HelloId(string id) string value = HttpUtility.HtmlEncode(id); Response.Write("<H1>Hello "); Response.Write(value); Response.Write("!</H1>"); 2.2 Execute a aplicação e note o comportamento dos casos abaixo. Note que as regras de roteamento podem ser utilizadas para obter valores de uma URL. http://localhost:<porta>/home/helloname?name=alan+turing http://localhost:<porta>/home/helloname?name=alan%20turing http://localhost:<porta>/home/helloname?name=alan Turing

S2B ASP.NET MVC 2 http://localhost:<porta>/home/helloname/alan Turing http://localhost:<porta>/home/helloname?name=<alan Turing> http://localhost:<porta>/home/helloid/alan%20turing http://localhost:<porta>/home/helloid/alan Turing http://localhost:<porta>/home/helloid?id=alan Turing / id http://localhost:<porta>/home/helloid/<alan Turing> 3 Tipos de retorno de um método de ação 3.1 Baixe e descompacte o arquivo Lab03_Catalogo.zip disponível em labs recursos e arraste a pasta Catalogo para a pasta Content do projeto. 3.2 Adicione ao controlador MovieController os métodos de ação abaixo: public ActionResult Catalogo(string titulo) string filepath = Server.MapPath("~/Content/Catalogo/") + titulo.tolower()+".pdf"; if ( System.IO.File.Exists(filePath) ) return new FilePathResult(filePath, "application/pdf"); else return HttpNotFound(); public JsonResult Filmes() // atenção: este código é apenas um exemplo; // ver possíveis vulnerabilidades em: // http://msdn.microsoft.com/query/dev11.query?appid=dev11idef1&l=en- US&k=k(System.Web.Mvc.JsonRequestBehavior);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.5);k(DevLang-csharp)&rd=true // http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-jsonvulnerability.aspx // http://msdn.microsoft.com/en-us/library/hh404095.aspx var model = from movie in db.movies select new Titulo = movie.title, Diretor = movie.director, Ano = movie.releasedate.year, Genero = movie.genre.name ; return Json(model.OrderBy( m => m.ano), JsonRequestBehavior.AllowGet); 3.3 Compile e teste utilizando as URLs abaixo: http://localhost:<porta>/movie/catalogo?titulo=pulpfiction (ou backtothefuture, ou thematriz) http://localhost:<porta>/movie/filmes 4 Operações de CLUDD

S2B ASP.NET MVC 3 4.1 Nesta seção será criado um controlador CLUDD (Create, List, Update, Delete, Details ) e suas views associadas (que foram criados automaticamente pelo processo de scaffolding no laboratório anterior. 4.2 Adicione ao projeto um novo controlador de nome FilmeController. Para este controlador, utilize o template MVC controller with read/write actions, verifique o código gerado e veja que já estão ali as operações básicas de CRUD. 4.3 Adicione ao controlador um atributo para acesso ao repositório (será necessário fazer referência ao namespace): private MovieDBContext moviedb = new MovieDBContext(); 4.4 Altere o método index para apresentar a lista dos 10 filmes do catálogo melhor avaliados (mais tarde incluiremos um mecanismo para paginar a apresentação dos filmes): public ActionResult Index() var filmes = this.moviedb.movies.include("genre").orderbydescending(a => a.gross).take(10).tolist(); return View(filmes); 4.5 Crie uma view para este método utilizando o MVC Scaffolding. Posicione o mouse sobre o código do método e com o botão direito do mouse selecione Add View Selecione o template List e como Model Class o model Movie, conforme abaixo: 4.6 Execute a aplicação e teste. 4.7 Para criar ou editar um filme, necessitamos processor em dois passos : o momento que o usuário solicita a operação (HttpGet) e o momento em que ele confirma a operação (HttpPost).

S2B ASP.NET MVC 4 Para editar um filme, altere os métodos de ação Edit para (será necessário adicionar o namespace using System.Data): // GET: Filme/Edit/5 public ActionResult Edit(int id) Movie filme = this.moviedb.movies.find(id); if (filme == null) return this.httpnotfound(); this.viewbag.genreid = new SelectList(this.movieDb.Genres, "GenreId", "Name", filme.genreid); return this.view(filme); [HttpPost] public ActionResult Edit(Movie album) if (ModelState.IsValid) this.moviedb.entry(album).state = EntityState.Modified; this.moviedb.savechanges(); return this.redirecttoaction("index"); this.viewbag.genreid = new SelectList(this.movieDb.Genres, "GenreId", "Name", album.genreid); return this.view(album); 4.8 Adicione uma view para a edição utilizando o MVC Scaffold e o template Edit. 4.9 Execute e teste, verifique a aplicação das regras de validação e apresentação. 4.10 Para manipular a remoção de um álbum, altere os seguintes métodos de ação no controlador (verifique e acrescente os namespaces necessários): // // GET: /Store/Delete/5 public ActionResult Delete(int id) Album album = this.storedb.albums.find(id); if (album == null) return this.httpnotfound();

S2B ASP.NET MVC 5 return this.view(album); // // POST: /Store/Delete/5 [HttpPost] public ActionResult Delete(int id, FormCollection collection) Album album = this.storedb.albums.find(id); this.storedb.albums.remove(album); this.storedb.savechanges(); return this.redirecttoaction("index"); 4.11 Crie uma view para a remoção, desta vez utilize o template Delete. 4.12 Execute e teste. 4.13 Para finalizar, vamos adicionar um pequeno mecanismo de pesquisa à aplicação. Vamos alterar o método de ação Index para filtrar os filmes a partir de uma substring fornecida pelo usuário. Use o seguinte método: public ViewResult Index(string searchstring) var movies = from movie in moviedb.movies select movie; if (!String.IsNullOrEmpty(searchString)) movies = movies.where(s => s.title.contains(searchstring)); return View(movies.ToList()); 4.14 Será necessário acrescentar à view uma caixa de diálogo para informar o texto de pesquisa. Abra a view associada ao método Index (posicione o cursor dentro do método, use o botão direito do mouse e selecione Go To View. Acrescente o código abaixo imediatamente antes da tag <table class="table">: @using (Html.BeginForm()) <p> Find by name: @Html.TextBox("SearchString") <input type="submit" value="search" /> </p> 4.15 Execute e teste. 4.16 Altere o método de pesquisa para incluir a propriedade diretor, utilizando a mesma string de pesquisa.