mandag 19. desember 2011

Utviklerskolen del 3, hente ut data vha .NET

I denne delen skal vi hente ut samme data som i del 2, men istedenfor å bruke JQuery og Ajax så skal jeg nå se på hvordan vi kan hente ut data vha .NET. Dette er fordel for de som liker å jobbe med c# og VisualStudio. En annen fordel er at man får jobbet med typesterke objekter og man kan utnytte .NET kompetanse man har.

Jeg tar utgangspunkt i at vi har opprettet ett webprosjekt av typen MVC3 i VisualStudio. Det første jeg da gjør er å høyreklikke på prosjektfila og velger 'Add Service Reference'. Jeg får da opp en dialogboks hvor jeg skriver inn adressen til regObs api'et, samt ett navnerom som passer:

Trykk 'OK' å alle klassene blir da generert opp for deg. Vi er nå klar til å ta disse i bruk og jeg går da inn i kontrolleren hvor jeg ønsker å hente ut data og sende til View'et.
public ActionResult Index()
{
    //peker til regObs api'et og oppretter en dbcontext
    var address = new Uri("http://h-web01.nve.no/test_regobsservices/odata.svc/");
    var dbContext = new RegObs.RegObsEntities(address);
 
    //henter ut data og returnerer til view
    var geoHazards = dbContext.GeoHazardKD.Where(x => x.LangKey == 1).ToList();
    return View(geoHazards);
}
Det neste jeg gjør er å lage view'et hvor jeg lister ut data som kommer fra kontrolleren. Jeg gjør en import på RegObs for å få tilgang til objektene som er generert opp, samt at jeg definerer modellen min til å være en liste av GeoHazardKD. Deretter lager jeg en løkke og skriver ut navnet på naturfarene.
@using MyOdataProject.RegObs
@model List<GeoHazardKD>
 
<h2>regObs, utviklerskolen 3</h2>
 
@foreach (var hazard in Model)
{
    @hazard.GeoHazardName <br />
}
Komplett kode eksempel kan lastes ned her

Ingen kommentarer:

Legg inn en kommentar