مقدمة الى ملف ViewStart_ في تطبيق ASP.NET Core MVC
-
ملف ViewStart في تطبيق ASP.NET Core MVC
في هذه الدرس ان شاء الله بناقش مجموعة من الاشياء الخاصة ب ViewStart في تطبيقات ASP.NET Core ،المواضيع الي بناقشها:
- لماذا نحتاج إلى ملف _ViewStart.cshtml في تطبيق ASP.NET Core MVC؟
- ما هو ملف _ViewStart.cshtml في تطبيق ASP.NET Core MVC؟
- كيف إنشاء ملف _ViewStart.cshtml في تطبيق ASP.NET Core MVC؟
- كيفية تعيين Layout في ملف ViewStart.cshtml؟
- التعرف على التسلسل الهرمي لملف _ViewStart.cshtml.
- كيفية تحديد Layout مشروط في ملف ViewStart؟
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
- كتابة المزيد من الكود Redundant Code
- جهد ووقت إضافي في صيانة التطبيق Maintenance Overhead
مثال آخر :
لسبب ما في قررت تغيير التصميم الخاص بالتطبيق، فا تخيل اذا كنت مستخدم الطريقة السابقة وعامل اضافة code بكل Views في التطبيق كم بكون حجم العمل بالاضافة الى الملل في اعادة تغير الكود، وكمان ممكن يحدث اخطأ لان ممكن تنسى بعض Views.
فا لحل هذه المشكل جاءت فكرة ViewStart بحيث يتم تحديد ما هي Layout من البداية في مكان واحد وبعدها كل Views في التطبيق بتعمل وراثه لها دون الحاجة الى اضافة اي كود في Views، تخيل كم بتوفر وقت وجهد.
طبعا يستثني من ذلك ال Views في حال تم كتابة Layout لهم مختلف.
تمام ان شاء الله لحد الان يكون الامر واضح.
ما هو ملف _ViewStart.cshtml في تطبيق ASP.NET Core MVC؟
في تطبيق ASP.NET Core MVC، ملفViewStart.cshtml_ هو ملف خاص شبيه ب Master page، ويتم تنفيذ التعليمات البرمجية الموجودة فيه قبل تنفيذ التعليمات البرمجية في individual view يعني يتم قراءة هذه الملف اولا. تمام هذا يعني ان يمكن تعيين خاصية Layout في هذا الملف (ViewStart.cshtml) كما هو موضح في الصورة أدناه بدلاً من اضافتها في كل individual view بحيث يتم تنفيذها قبل تنفيذ view.
طبعا كتابة الكود في مكان واحد بحيث يطيق على كل Views اكيد اسهل وافضل وبوفر وقت وجهد، واكيد صيانة التطبيق أسهل بكثير. لذلك، في المستقبل، إذا كنت تريد تغيير layout file ، فأنت تحتاج فقط إلى تغيير الكود في مكان واحد فقط ، أي في ملف _ViewStart.cshtml.
كيفية إنشاء ملف _ViewStart.cshtml في تطبيق ASP.NET Core MVC؟
يتم انشاء هذا الملف داخل مجلد Views، لإنشاء ملف "ViewStart.cshtml_”، انقر بزر الماوس الأيمن على مجلد Views ثم حدد خيار " Add – New Item"، سيؤدي هذا إلى فتح نافذة " New Item ". من نافذة " New Item"، ابحث عن "Razor" ثم حدد "Razor View Start" وانقر على زر "Add" كما هو موضح في الصورة أدناه والذي يجب أن ينشئ "ViewStart.cshtml_" داخل مجلد "Views”.

@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
@{
ViewData["Title"] = "Home Page";
}
@model string
@Model
<div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
@{ ViewData["Title"] = "Thanks"; Layout = "_MyLayout"; } <h2>Thanks</h2>

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
</head>
<body>
<div>
@RenderBody()
</div>
@if (IsSectionDefined("Scripts"))
{
@RenderSection("Scripts", false)
}
</body>
</html>
@{
Layout = "~/Views/Home/_MyLayout.cshtml";
}
اترك تعليقك