ASP.NET Core MVC چیست؟
الگوی معماری Model-View-Controller در ASP.NET Core برای ساخت اپلیکیشنهای وب با صفحات Server-Rendered.
چرا مهم است؟
MVC هنوز انتخاب رایج برای اپلیکیشنهای وب سنتی (نه SPA) است که HTML روی سرور رندر میشود؛ جداسازی Model/View/Controller نگهداری کد را در پروژههای بزرگ سادهتر میکند.
تعریف
MVC داده (Model)، نمایش (View، فایلهای Razor .cshtml) و منطق پاسخ به درخواست (Controller) را از هم جدا میکند؛ Controller تصمیم میگیرد کدام View با کدام Model رندر شود.
مثال
public class ProductsController : Controller
{
private readonly IProductService _service;
public ProductsController(IProductService service) => _service = service;
public async Task<IActionResult> Index()
{
var products = await _service.GetAllAsync();
return View(products); // Views/Products/Index.cshtml
}
}
چرخه یک درخواست
Routing → Controller Action → Model (از Service/دیتابیس) → View (رندر HTML) → پاسخ به مرورگر.
اشتباه رایج
❌ نوشتن منطق کسبوکار مستقیم داخل Controller Action — Controller باید نازک باشد و فقط هماهنگکننده؛ منطق واقعی باید در لایه Service باشد تا قابل تست مستقل و استفاده مجدد شود.
منبع و مطالعه بیشتر
خلاصه
MVC داده، نمایش و منطق پاسخدهی را در سه لایه جدا میکند و برای اپلیکیشنهای وب Server-Rendered مناسب است. Controller را نازک نگه دارید و منطق کسبوکار را در Service بگذارید. مرجع کامل: مستندات ASP.NET Core MVC، Microsoft Learn.
