Räkna med ASP.NET MVC 3

Relevanta dokument
Räkna med ASP.NET Web Forms

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Frekvenstabell över tärningskast med C#

ASP.NET MVC. Copyright Mahmud Al Hakim Innehåll

Komponenter med COM (och COM+/VC++ 7.0)

Frekvenstabell över tärningskast med C#

Asp.net mvc intro PER KVARNBRINK,

MVC med Javascript och Ajax. Filip Ekberg

Gissa det hemliga talet

Laboration 1 Introduktion till Visual Basic 6.0

Så här skriver du ditt första program i C++

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Gissa det hemliga talet

Sidan kommer inte läggas upp någonstans utan du redovisar den för mig på något handledningstillfälle.

Receptsamling med fil

Kursplanering Utveckling av webbapplikationer

Innehåll. Dokumentet gäller från och med version

<script src= "

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

MVC med Javascript och Ajax. Filip Ekberg

PROGRAMMERING A VB 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL BASIC

Övning MS SQL och MVC del 2

Statistik över heltal

Lab 5: ASP.NET 2.0 Site Navigation

Sammanfattning. Applikationen är utvecklad i Microsofts utvecklingsmiljö Visual Studio 2012.

MVC-mönster i ASP.NET Projektblogg bygghemma.se

Appar med ryggrad. Introduktion till JavaScriptramverket Backbone

Övningsuppgift. Bankkonton. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

// GET: Test1/Index2 // Syftet är att se hur olika url:er leder till olika actions

Labb 3: ASP.NET 4.5 Anpassningar av användargränssnittet: Master Pages, Teman, och Kontroller

INTRODUKTION TILL ANGULAR JS

Övning: Arbeta med Azure Explorer

e-line Kort- och Bankbetalning

JavaScript in SharePoint and not just for Apps. Wictor Wilén

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

Laboration 4. Laboration 4, Formulärvalidering. Inledning. Observera. Mål. Genomförande

Alla rättigheter till materialet reserverade Easec

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Lab 6: ASP.NET 2.0 Providermodellen

Next -> Next -> Finish

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen.

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Övningsuppgift. En array baklänges. Steg 1. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

Lab 5: ASP.NET 4.5 Site Navigation

Laboration 6 Formulär och stränghantering övningar/uppgifter

Övning 1: Skapa virtuell maskin för utveckling.

Docker i Windows 8.1 med Hyper-V

Datorövning 1. int sgd(int m, int n) { int rest; while ( n!= 0 ) { rest = m % n; m = n; n = rest; return m;

Starta MySQL Query Browser

Skriv före adressen och lämna bort www enligt modellen:

Datorlaboration 0, Programmering i C++ (EDAF30)

Labb 1: Skapa en website

IRONCAD KONFIGURATIONER

Arg-administratörens guide till Umbraco v 1.2.1

Ibruktagande av Statistikcentralens gränssnittstjänster i QGISprogrammet

E12 "Evil is going on"

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Webbutveckling med AngularJS

IRONCAD KONFIGURATIONER

Laboration 10 - Eclipse

Vision WEB Komma igång med Electrolux Webbokning Windows Server 2012 R2 8/31/2017

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

Lektion 2, Grundläggande funktioner i ASP.NET

Objektorienterad programmering Föreläsning 2

Pyramid Business Intelligence. Affärsinformation från din Pyramid till din iphone eller ipod (100913)

Labb 1: Skapa en webbsite

Övningsuppgift. Repeterbara citat. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

1.Lär känna MS SQL Observera. Tips. Förberedelse

Inledande programmering med C# (1DV402) Introduktion till C#

Mosaik-dataset är en optimal datamodell för rasterdatahantering

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

Laborationsanvisning. Geometriska figurer. Steg 2, laborationsuppgift 3. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

EXCEL 2010 FÖRDJUPNING

Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

Alla rättigheter till materialet reserverade Easec

WEBBAPPLIKATION FÖR ADMINISTRERING AV DOKUMENT

Utveckling av webbapplikationer med.net, DVA213 (1 av 5)

Verktyg och Utvecklingsmiljö. Jochim von Hacht

Webbplats med Zend Framework

XtraMatLagning. August Ek och Oscar Johnson. TNM065 Dokumentstrukturer

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Fältnamn /Rubrik Data Data Data Data Data Data Data Data

Laboration 1 XML, XPath, XSLT och JSON

ASP.NET Thomas Mejtoft

MVC med Javascript och Ajax. Filip Ekberg

Stationsregistret - användarhandledning

Arbetshäfte Office 365 en första introduktion

Webbprogrammering. Sahand Sadjadee

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok.

NetBeans 5.5. Avsikt. Projektfönster

Laborationsanvisning. Digital väckarklocka. Steg 2, laborationsuppgift 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

ASP.NET Web Forms. Copyright Mahmud Al Hakim Vad är Web Forms?

Nu är du inloggad på QlickView-servern och kan starta QlickView som finns som shortcut på skrivbordet, se figur1. Skapa nytt dokument med File->New.

SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR

Datorlaboration 0, Programmering i C++ (EDA623)

Allt du behöver för crowdsourcing

Innehållsförteckning Introduktion Installation, konfiguration & Matchning Installation på primära domänkontrollanten...

Transkript:

Instruktion Räkna med ASP.NET MVC 3 Introduktionsuppgift Författare: Mats Loock Kurs: ASP.NET MVC Kurskod:1DV409

Innehåll Du ska följa steg-för-steg -instruktionen i denna introduktionsuppgift och skapa en ASP-NET MVCapplikation som ska addera två heltal en användare matar in i två textfält. Du kommer därefter att modifiera applikationen så att användaren kan välja vilket räknesätt som ska användas. 1. Starta Visual Studio 2010. Figur 1. 2. Du ska skapa ett nytt projekt för en webbapplikation, välj därför File New Project... Figur 2. 3. Dialogrutan New Project visas. Figur 3. a) Under Installed Templates expandera Visual C# och markera Web. b) Kontrollera så att.net Framework 4 visas i den nedrullningsbara listrutan. 2011 Mats Loock 1DV409, ASP.NET MVC 2 (16)

c) Markera ASP.NET MVC 3 Web Application. d) Vid Name skriver du in projektets namn (MyValuableCalculator). e) Ange vid Location en lämplig katalog där projektet ska sparas (C:\Projects). 4. Dialogrutan New ASP.NET MVC 3 Project visas. Figur 4. a) Under Select a Templates markera Empty. b) Kontrollera så att View engine är satt till Razor. c) Välj Use HTML5 semantic markup. 5. Projektet Visual Studio skapar innehåller filer och kataloger. /Content Här placerar du CSS-filer, bilder och övrigt icke dynamiskt innehåll; Javascript placerar i en egen katalog. /Controllers 2011 Mats Loock 1DV409, ASP.NET MVC 3 (16)

Här placerar du Controller-klasser som hanterar URL-begäran som skickas till webbapplikationen. /Models Här placerar du klasser som representerar och manipulerar data och affärsobjekt. /Scripts Här placerar du JavaScript-bibliotek och -skript (.js). /Views Här placerar du vy-filer som ansvar för rendering av t.ex. HTML. 6. Högerklicka på katalogen Models och välj Add Class. Figur 5. 7. Dialogrutan Add New Item visas. Figur 6. 2011 Mats Loock 1DV409, ASP.NET MVC 4 (16)

a) Ange namnet på klassen (ElementaryMath) vid Name. b) Klicka på Add. 8. Klassen ElementaryMath,i namnområdet MyValuableCalculator.Models, ansvarar för att två heltal ska adderas. De två autoimplementerade egenskaperna Op1 och Op2 kommer att innehålla de värden användaren matar in i formulärets textfält. Metoden Compute utför additionen av Op1 och Op2 och summan lagras i read-only -egenskapen Result. Figur 7. 9. För att Visual Studio ska bli fullt medveten om att en ny klass lagts till projektet bygger du projektet genom att trycka på Skift+F6. Du kan också välja Build Build MyValuableCalculator. Figur 8. 10. Högerklicka på katalogen Controller och välj Add Controller. Figur 9. 2011 Mats Loock 1DV409, ASP.NET MVC 5 (16)

11. Dialogrutan Add Controller visas. Figur 10. a) Vid Controller Name skriver du in namnet, HomeController, på kontrollern. OBS! Det är mycket viktigt att namnet på kontrollern avslutas med Controller. b) Klicka på Add. 12. Kontrollern HomeController skapas. Figur 11. 13. Komplettera metoden Index för att skapa en modell, en instan s av klassen ElementaryMath, som skickas till vyn. Figur 12. 2011 Mats Loock 1DV409, ASP.NET MVC 6 (16)

14. Högerklicka någonstans i metoden Index och välj Add View. Figur 13. 15. Dialogrutan Add View visas. Figur 14. a) Det är viktigt att vyn har samma namn som metoden i kontrollern, d.v.s. Index. b) Kontrollera så att Razor är valt under View engine:. c) Markera Create a strongly-typed view. d) Vid Model class: välj klassen ElementaryMath (MyValuableCalculator.Models). e) Under Scaffold template ska Empty vara valt. f) Reference script libraries ska vara markerad. g) Klicka på Add. 2011 Mats Loock 1DV409, ASP.NET MVC 7 (16)

16. Filen Index.cshtml skapas i katalogen \Views\Home. Vyer som tillhör kontrollern HomeController måste placeras i katalogen \Views\Home. Det är vanligt att vyernas namn är detsamma som kontrollmetoden som använder dem, men det behöver inte vara så. Figur 15. OBS! Vy-filen har filändelsen.cshtml och saknar en code behind -fil; den behövs inte. 17. Med Html-hjälpmetoder skapas ett formulär. Den första raden talar om att vyn är starkt typad och dess modell är av typen ElementaryMath. Figur 16. På raderna 9, 11 och 13 refererar m till objektet som utgör modellen. 18. Webbapplikationen är nu färdig för att provköras för första gången. Enklast provkör du den genom att trycka på Ctrl+F5. Figur 17. Den renderade HTML-koden innehåller inget du inte skulle skrivit för hand. Textfälten namnges automatiskt med namnet egenskaperna, Op1 respektive Op2, har i klassen ElementaryMath. 2011 Mats Loock 1DV409, ASP.NET MVC 8 (16)

Någon HTML för egenskapen Result renderas inte eftersom den har värdet null. Figur 18. 19. För att kunna behandla formulärdatat behöver klassen HomeController kompletteras. Figur 19. Metoden med attributet HttpPost tar hand om URL-begäran av typen POST. Formulärdatat används för att initiera ElementaryMath-objektet parametern elementarymath refererar till. Egenskaperna Op1 och Op2 kommer att innehålla de värden användaren matat in i respektive textfält i formuläret. 2011 Mats Loock 1DV409, ASP.NET MVC 9 (16)

20. Provkör webbapplikationen med Ctrl+F5. Skriv in värden 25 och 17. Klicka på kommandoknappen och konstatera att den beräkna summan helt korrekt blir 42. Figur 20. Radera innehållet i textfälten och klicka på kommandoknappen. Konstatera att textfälten nu formateras annorlunda och att summan nu blir 0. Varför? Någon validering är i egentlig mening inte implementerad! Någon beräkning som ger resultatet 0 ska överhuvudtaget inte göras. Figur 21. 21. För att implementera validering måste klassen ElementaryMath kompletteras så att validering sker med hjälp av data annotations. Figur 22. 2011 Mats Loock 1DV409, ASP.NET MVC 10 (16)

22. I kontrollermetoden måste modellens status undersökas. Om objektet uppfyller de krav valideringen ställer ska en beräkning ske och objektet, innehållande resultatet skickas vidare till vyn. Klarar inte objektet valideringen skickas objektet utan beräkning gjord men innehållande felmeddelanden tillbaka till vyn. Figur 23. 23. Även vyn Home/Index.aspx måste modifieras så valideringsmeddelanden visas. Figur 24. 24. Nu visas felmeddelande om användaren inte matar in något i textfälten och klickar på kommandoknappen. Figur 25. 2011 Mats Loock 1DV409, ASP.NET MVC 11 (16)

Felmeddelanden visas även då användaren matar in något som inte kan tolkas som ett heltal. Figur 26. 25. Nu sker all validering på servern. För att valideringen även ska ske på klienten måste Shared/_Layout.cshtml kompletteras. Figur 27. 26. Nu sker valideringen omedelbart när användaren skriver i textfälten. Figur 28. Klickar användaren på kommandoknappen postas inte formuläret men felmeddelanden visas ändå. Figur 29. 2011 Mats Loock 1DV409, ASP.NET MVC 12 (16)

27. Som service till användaren av webbapplikationen skulle det vara trevligt om det första textfältet har fokus när sidan laddat klart. Det kan ordnas enkelt med jquery. Vyn Home/Index.aspx behöver modifieras. Figur 30. (Fungerar skriptet verkligen? Det gör det eftersom en funktion som skickas som ett argument till jquery-konstruktorn binds automatiskt till händelsen ready, varför $(document).ready() inte behöver anges explicit.) 28. Nu är webbapplikationen nästan klar. Punkterna som följer visar hur en nedrullningsbar listruta kan användas för att användaren ska kunna välja räknesätt. 29. Modellen, d.v.s. klassen ElementaryMath, måste modifieras så att den kan hantera de fyra räknesätten. Figur 31. 2011 Mats Loock 1DV409, ASP.NET MVC 13 (16)

30. Skapa en ny katalog, ViewModels, under projektroten. I denna katalog placerar du filer med klasser, innehållande vyspecifikt data som inte har med modellen att göra, controllrar kan skapa instanser av för att skicka till vyer. Figur 32. 31. Lägg till en ny klass med namnet HomeIndexViewModel i katalogen ViewModels. Figur 33. 32. Klassen ElementaryMathViewModel innehåller två publika egenskaper. Egenskapen ElementaryMath refererar till objektet som utgör själva modellen. Read-only -egenskapen ArithmeticOperations returnerar en lista med de fyra räknesätten som den nedrullningsbara listrutan i vyn ska visa. Figur 34. 2011 Mats Loock 1DV409, ASP.NET MVC 14 (16)

33. Vyn Home/Index.aspx måste modifieras så den använder vymodellklassen HomeIndexViewModel istället för modellklassen ElementaryMath. Dessutom ska +-tecknet ersättas med en nedrullningsbar listruta. Figur 35. Lägg märke till att Op1, Op2 och Result nu måste förgås av ElementaryMath, som ju egenskapen i vymodellklassen heter som refererar till modellobjektet av typen ElementaryMath. 34. Även metoderna i klassen HomeController måste modifieras att använda klassen HomeIndexViewModel. 2011 Mats Loock 1DV409, ASP.NET MVC 15 (16)

Figur 36. Det enda som behöver ändras är att objektet som skickas till vyn ska vara av typen HomeIndexViewModel. ASP.NET MVC kan fortfarande binda formulärdatat till objektet av typen ElementaryMath. Detta fungerar eftersom parametern (elementarymath) har samma namn som egenskapen har i vymodellen (ElementaryMath). 35. Nu kan användaren välja om de två talen ska summeras, subtraheras, multipliceras eller divideras. Figur 37. Valideringen fungerar fortfarande trots förändringarna som gjorts. Det är bara att prova Figur 38. 36. Nu är webbapplikationen klar. Förhoppningsvis har du nu fått en introduktion till ASP.NET MVC och förstår grundläggande koncept, även om det är mycket mer att lära. 2011 Mats Loock 1DV409, ASP.NET MVC 16 (16)