انتخاب بین AspCoreMVC یا AspCorePages
با سلام خدمت دوستان
بین AspCoreMVC یا AspCorePages کدام بهتر و عملکرد بهتری داره ؟؟؟
با تشکر
یکی از امکاناتی که در نسخه ۲ از تکنولوژی Asp.net core معرفی شده Page ها هستند. در نگاه اول از نظر کارایی بسیار شبیه به View ها می باشند.
نکته اولی که باید به آن دقت کنید اینکه به ساختار MVC تا قبل از Asp.net Core 2 ساختار ام وی سی سنتی و یا traditional MVC گفته می شود. تا همینجای کار شاید به یک نکته پی برده باشید و آن این است که ما گفتیم ام وی سی سنتی!!! یعنی Page ها با چیزی که تا به حال با آن کار می کردیم متفاوت می باشد و دیگر از ساختار model-controller-view پیروی نمی کند.
page ها هم مانندview ها از Razor view استفاده می کنند. البته در Page ها از Razor Page استفاده می شود که خود زیر مجموعه ای از Razor View می باشد. بنابراین می توان گفت اولین تفاوت Page با View این می باشد که Page ها یا همان صفحات از Razor Page ها استفاده می کنند اما View ها از Razor View استفاده می کند.
در بالای Page ها برای اینکه نشان داده شود که این یک Page می باشد از @page استفاده می شود. در ادامه میتوانید یک نمونه از یک Page ساده را مشاهده نمایید.
@page
@model LibraryProject.Pages.TestRazorModel
@{
ViewData[“Title”] = “TestRazor”;
Layout = “~/Views/Shared/_Layout.cshtml”;
}
<h2>TestRazor</h2>
تفاوت مهم دیگری که Page ها با View ها دارند این است که Page ها خود مختار هستند، به این معنی که مانند View ها وابسته به کنترلر نیستند. در واقع مثل Web Form ها دارای Code-behind هستند. می توان گفت یک Page همه چیز را همراه خود دارد یعنی هم کدهای Html و Css و … و هم کدهای سی شارپ. بنابراین از نظر فنی شما یک فایل با پسوند cshtml خواهید داشت و یک فایل با پسوند cshtml.cs که فایل دوم همان فایل کدنویسی سی شارپ (code-behind) می باشد که به عنوان کنترلر عمل می کند در حالی که در مدل ام وی سی سنتی شما یک کنترلر دارید، یک مدل یا ویومدل و یک ویو دارید.
دقت کنید که در ویوها تمامی عملیات از طریق اکشن ها انجام میگیرد و در واقع ویوها مبتنی بر اکشن هستند. اما در Page ها علاوه بر اکشن ها توسط متدهای onPost و OnGet هم عملیات نمایش صفحات و ارسال داده ها به سرور انجام می پذیرد.
در مجموع Razor Page تکنولوژی جدیدتری از MVC هست و به همین جهت امکانات و انعطاف پذیری بیشتری داره
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2