asp.net-mvcAan de slag met asp.net-mvc


Opmerkingen

Het architecturale patroon Model-View-Controller (MVC) scheidt een applicatie in drie hoofdcomponenten: het model, het aanzicht en de controller. Het ASP.NET MVC-framework biedt een alternatief voor het ASP.NET-webformulierenpatroon voor het maken van webtoepassingen. Het ASP.NET MVC-framework is een lichtgewicht, zeer testbaar presentatieraamwerk dat (net als op Web Forms-gebaseerde applicaties) is geïntegreerd met bestaande ASP.NET-functies, zoals masterpagina's en op lidmaatschap gebaseerde authenticatie. Het MVC-framework wordt gedefinieerd in de assemblage System.Web.Mvc.

Het MVC-framework omvat de volgende componenten:

  • Modellen . Modelobjecten zijn de delen van de toepassing die de logica voor het gegevensdomein van de toepassing implementeren. Vaak halen modelobjecten de modelstatus op en slaan deze op in een database. Een productobject kan bijvoorbeeld informatie uit een database ophalen, erop werken en vervolgens bijgewerkte informatie terugschrijven naar een producttabel in een SQL Server-database. In kleine toepassingen is het model vaak een conceptuele scheiding in plaats van een fysieke. Als de toepassing bijvoorbeeld alleen een gegevensset leest en naar de weergave verzendt, heeft de toepassing geen fysieke modellaag en bijbehorende klassen. In dat geval neemt de dataset de rol aan van een modelobject.
  • Bekeken . Weergaven zijn de componenten die de gebruikersinterface (UI) van de toepassing weergeven. Meestal wordt deze gebruikersinterface gemaakt op basis van de modelgegevens. Een voorbeeld is een bewerkingsweergave van een producttabel die tekstvakken, vervolgkeuzelijsten en selectievakjes weergeeft op basis van de huidige status van een productobject.
  • Controllers . Controllers zijn de componenten die gebruikersinteractie afhandelen, met het model werken en uiteindelijk een weergave selecteren die de gebruikersinterface weergeeft. In een MVC-toepassing geeft de weergave alleen informatie weer; de controller verwerkt en reageert op gebruikersinvoer en interactie. De controller verwerkt bijvoorbeeld queryreekswaarden en geeft deze waarden door aan het model, dat op zijn beurt deze waarden kan gebruiken om de database te doorzoeken.

versies

Versie .NET-versie Publicatiedatum
MVC 1.0 .NET 3.5 2009-03-13
MVC 2.0 .NET 3.5 / 4.0 2010-03-10
MVC 3.0 .NET 4.0 2011-01-13
MVC 4.0 .NET 4.0 / 4.5 2012-08-15
MVC 5.0 .NET 4.5 2013/10/17
MVC 5.1 .NET 4.5 2014/01/17
MVC 5.2 .NET 4.5 2014/08/28
MVC 6.0 .NET 4.5 2015/11/18
Core MVC 1.0 .NET 4.5 2016/07/12
Core MVC 1.1 .NET 4.5 2016/11/18

Hallo MVC!

ASP.NET MVC is een open source framework voor webtoepassingen. MVC zelf is een ontwerppatroon dat is opgebouwd rond drie hoofdcomponenten: model-view-controller .

Model - Modellen weerspiegelen uw bedrijfsobjecten en zijn een middel om gegevens tussen Controllers en Views door te geven.

Beeld - Weergaven zijn de pagina's die de modelgegevens weergeven en weergeven aan de gebruiker. ASP.NET MVC-weergaven worden meestal geschreven met behulp van Razor-syntaxis.

Controller - Controllers verwerken inkomende HTTP-aanvragen van een client en retourneren meestal een of meer modellen naar een geschikte weergave.

De ASP.NET MVC kenmerken:

  1. Ideaal voor het ontwikkelen van complexe maar lichtgewicht toepassingen
  2. Het biedt een uitbreidbaar en plugbaar framework dat eenvoudig kan worden vervangen en aangepast. Als u bijvoorbeeld de ingebouwde Razor of ASPX View Engine niet wilt gebruiken, kunt u andere view-engines van derden gebruiken of zelfs de bestaande aanpassen.
  3. Maakt gebruik van het op componenten gebaseerde ontwerp van de applicatie door deze logisch op te splitsen in Model-, View- en Controller-componenten. Dit stelt de ontwikkelaars in staat om de complexiteit van grootschalige projecten te beheren en aan afzonderlijke componenten te werken.
  4. De MVC-structuur verbetert de testgestuurde ontwikkeling en testbaarheid van de applicatie, omdat alle componenten interface-gebaseerd kunnen worden ontworpen en getest met behulp van nepobjecten. Daarom is het ASP.NET MVC Framework ideaal voor projecten met een groot team van webontwikkelaars.
  5. Ondersteunt alle bestaande uitgebreide ASP.NET-functies zoals autorisatie en authenticatie, basispagina's, gegevensbinding, gebruikersbesturing, lidmaatschappen, ASP.NET-routering, etc.
  6. Het maakt geen gebruik van het concept View State (dat aanwezig is in ASP.NET). Dit helpt bij het bouwen van applicaties die licht van gewicht zijn en geeft volledige controle aan de ontwikkelaars.

Eenvoudige MVC-applicatie

We gaan een eenvoudige MVC-applicatie maken die persoonsdetails weergeeft. Maak een nieuw MVC-project met Visual Studio. Voeg als volgt een nieuw model met de naam Persoon toe aan de map Modellen:

public class Person
{
    public string Surname { get; set; }
    public string FirstName { get; set; }
    public string Patronymic { get; set; }
    public DateTime BirthDate { get; set; }
}
 

Voeg een nieuwe controller toe aan de map Controllers:

public class HomeController : Controller
{
    //Action Method
    public ActionResult Index()
    {
        // Initialize model
        Person person = new Person
        {
            Surname = "Person_SURNAME",
            FirstName = "Person_FIRSTNAME",
            Patronymic = "Person_PATRONYMIC",
            BirthDate = new DateTime(1990, 1, 1)
        };

        // Send model to View for displaying to user
        return View(person);
    }
}
 

Voeg ten slotte View toe aan / Views / Home / map met de naam Index.cshtml :

@* Model for this view is Person *@
@model Hello_MVC.Models.Person

<h2>Hello @Model.FirstName !</h2>

<div>
    <h5>Details:</h5>
    <div>
        @Html.LabelFor(m => m.Surname)
        @Html.DisplayFor(m => m.Surname)
    </div>
    <div>
        @Html.LabelFor(m => m.FirstName)
        @Html.DisplayFor(m => m.FirstName)
    </div>
    <div>
        @Html.LabelFor(m => m.Patronymic)
        @Html.DisplayFor(m => m.Patronymic)
    </div>
    <div>
        @Html.LabelFor(m => m.BirthDate)
        @Html.DisplayFor(m => m.BirthDate)
    </div>
</div>