Get ()
{
// Detta genererar några slumpmässiga väderprognosdata
var rng =ny slumpmässig ();
Returnera Ensurable.Range (1, 5). Välj (Index => Ny WeatherForecast
{
Date =DateTime.Now.Adddays (index),
Temperaturec =Rng.Next (-20, 55),
Sammanfattning =Sammanfattningar [rng.next (sammanfattningar.LENGTH)]]
})
.ToArray ();
}
}
// Detta är en enkel datamodell som representerar en väderprognos
Offentlig klass Weatherforecast
{
public DateTime Date {get; uppsättning; }
public int temperaturEc {get; uppsättning; }
public String Summary {get; uppsättning; }
// Detta är en egenskap som beräknar temperaturen i Fahrenheit
public int temperaturf => 32 + (int) (temperaturer / 0,5556);
}
}
`` `
Förklaring:
1. Använda direktiv:
* `Att använda system;`:importerar systemnamnområdet, som ger grundläggande klasser som `datetime ',` slumpmässigt', etc.
* `med system.Collections.Generic;`:Importerar namnområdet Generic Collections, som tillhandahåller klasser som `Ienumerable ',' List ', etc.
* `using System.Linq;`:Imports the LINQ namespace, providing methods for working with collections.
* `Att använda System.Threading.Tasks;`:Import av uppgiftsnamnområdet, vilket möjliggör asynkrona operationer.
* `Att använda microsoft.aspnetcore.mvc;`:importerar ASP.NET Core MVC -namnutrymmet, tillhandahåller klasser som `controllerbase`,` httpget`, `apicontroller`, etc.
2. Namnområdet:
* `NAMESPACE myaspnetcoreapp`:Definierar namnområdet för koden, som hjälper till att organisera och undvika namnkonflikter.
3. Controller Class:
* `[Apicontroller]`:Ett attribut som indikerar att denna klass är en controller, ansvarig för hanteringsförfrågningar.
* `[Rutt (" [Controller] ")]`:Definierar basvägen för styrenheten, vilket innebär att förfrågningar till `/Weatherforecast` kommer att hanteras av denna styrenhet.
* `Offentlig klass WeatherForecastController:ControllerBase`:Denna linje definierar Controller -klassen, ärver från` Controllerbase '. Klassen "Controllerbase" tillhandahåller metoder för hantering av HTTP -förfrågningar och svar.
4. Åtgärdsmetod:
* `[Httpget]`:attribut som anger den här metoden hanterar får förfrågningar.
* `public iEnumerable get ()`:metoddefinitionen.
* `IEnumerable `:returtypen, vilket indikerar att den här metoden kommer att returnera en samling av `weatherforecast` objekt.
* `Get ()`:metodnamnet, som också är vägen för denna specifika begäran.
* Inuti metoden:
* `var rng =ny slumpmässig ();`:Skapar en ny instans av klassen "Random", som används för att generera slumpmässiga värden.
* `EMULABLE.RANGE (1, 5). Välj (Index => Ny WeatherForecast ...)`:Den här linjen skapar en samling av 5 väderprognosobjekt med LINQ.
* `Return ... .ToArray ();`:Returnerar den genererade samlingen som en matris.
5. Datamodell:
* `Offentlig klass WeatherForecast`:Definierar en enkel klass som representerar en väderprognos.
* `offentligt datetime -datum {get; uppsättning; } `:Representerar datumet för prognosen.
* `offentligt int temperaturec {get; uppsättning; } `:Representerar temperaturen i Celsius.
* `public String Summary {get; uppsättning; } `:Representerar en sammanfattning av väderförhållandena.
* `offentlig int temperaturf => 32 + (int) (temperaturer / 0,5556);`:en beräknad egenskap som konverterar Celsius till Fahrenheit.
Sammanfattning:
Detta program visar den grundläggande strukturen för en ASP.NET Core MVC -applikation, inklusive:
* controller: Handlar förfrågningar baserade på rutter.
* Åtgärdsmetod: Bearbetar specifika förfrågningar inom en controller.
* Datamodell: Representerar de uppgifter som hanteras av ansökan.
* attribut: Används för att definiera beteendet hos klasser och metoder.
Detta exempel är enkelt, men det ger en grund för att bygga mer komplexa applikationer. Du kan utöka det genom att lägga till fler kontroller, handlingsmetoder och datamodeller samt använda andra ASP.NET -kärnfunktioner som mellanprogram, beroendeinjektion och databasintegration.