Основные концепции ASP.NET Core связаны с созданием веб-приложений с использованием этой платформы. Вот некоторые ключевые понятия и примеры кода:
- Промежуточное программное обеспечение.
Компоненты промежуточного программного обеспечения — это строительные блоки приложений ASP.NET Core. Они обрабатывают HTTP-запросы и ответы. Вот пример специального промежуточного программного обеспечения, которое регистрирует путь запроса:
public class RequestLoggerMiddleware
{
private readonly RequestDelegate _next;
public RequestLoggerMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext context)
{
// Log the request path
Console.WriteLine($"Request Path: {context.Request.Path}");
// Call the next middleware in the pipeline
await _next(context);
}
}
// In Startup.cs
public void Configure(IApplicationBuilder app)
{
// Register the middleware
app.UseMiddleware<RequestLoggerMiddleware>();
// Other middleware registrations
// ...
}
- Маршрутизация.
ASP.NET Core использует маршрутизацию для сопоставления входящих запросов с соответствующими контроллерами и действиями. Вот пример настройки маршрутов:
// In Startup.cs
public void Configure(IEndpointRouteBuilder endpoints)
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
}
- Контроллеры и действия.
Контроллеры обрабатывают входящие запросы и выполняют действия на основе запрошенного маршрута. Вот пример контроллера с действием:
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
- Представления и страницы Razor.
Представления используются для генерации ответов HTML. Razor Pages предоставляет упрощенный способ определения логики представления и контроллера в одном файле. Вот пример страницы Razor:
<!-- Index.cshtml -->
@page
@model IndexModel
<h1>Welcome to my blog!</h1>
<p>@Model.Message</p>
// Index.cshtml.cs
public class IndexModel : PageModel
{
public string Message { get; set; }
public void OnGet()
{
Message = "Hello, ASP.NET Core!";
}
}
- Внедрение зависимостей.
ASP.NET Core имеет встроенную поддержку внедрения зависимостей. Вот пример внедрения службы в контроллер:
public interface IMyService
{
void DoSomething();
}
public class MyService : IMyService
{
public void DoSomething()
{
// Implementation
}
}
public class HomeController : Controller
{
private readonly IMyService _myService;
public HomeController(IMyService myService)
{
_myService = myService;
}
public IActionResult Index()
{
_myService.DoSomething();
return View();
}
}