شروع دوره پایتون از پنجشنبه 1 خرداد ، مقدماتی تا پیشرفته، بدون پیش نیاز شروع دوره پایتون از پنجشنبه 1 خرداد ، مقدماتی تا پیشرفته، بدون پیش نیاز
🎯 ثبت نام
بستن تبلیغات
تسلط کامل بر سی‌شارپ با یک دوره پروژه‌محور

یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شی‌گرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفه‌ای و امکانات کامل!

مشاهده بیشتر
تسلط جامع بر MVC Core برای توسعه وب حرفه‌ای

یادگیری MVC Core از مبانی تا پیشرفته: شی‌گرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژه‌های کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!

مشاهده بیشتر

آموزش کار با Partial View در ASP.Net MVC

آموزش کار با Partial View در ASP.Net MVC :

در این درس به آموزش کار با Partial View در ASP.Net MVC خواهیم پرداخت.

Partial View چیست؟

Partial View یک View چند بار قابل استفاده است که می توان آن را در یک یا چندین child view، به صورت همزمان به کار برد. Partial View عملکردی مشابه user control ها در ASP.Net دارند. این ابزار، کد نویسی های تکراری و چند باره را با امکان استفاده از یک مجموعه کد در بخش های مختلف یک View از بین می برد. شما می توانید Partial View را در یک Layout View و یا یک View معمولی، به صورتی یکسان به کار ببرید. با استفاده از Partial View، سرعت کد نویسی بالا رفته و همچنین فرآیند به روز رسانی View ها، بسیار آسان می شود.
برای شروع کار، بیایید یک Partial View ساده را جهت تکرار بخش منو (Navigation bar) در پروژه تمرینی خود، ایجاد کنیم. برای بخش منو که در عکس زیر نشان داده شده است، یک Partial View Partial View خواهیم ساخت. بنابراین شما می توانید این بخش از منو را بدون نیاز به نوشتن چند باره کد آن، در یک یا چندین Layout View و یا View مستقل به کار ببرید.

آموزش کار با Partial View در ASP.Net MVC

عکس زیر، کد HTML مربوط به بخش منو (navigation bar) را نشان داده است. کد این کپی را Cut کرده و در یک Partial View Partial View قرار می دهیم :

آموزش کار با Partial View در ASP.Net MVC

آموزش ایجاد یک Partial View جدید در ASP.Net MVC :

برای ایجاد یک Partial View، بر روی پوشه Shared Folder، کلیک راست کرده و به ترتیب گزینه های Add و View را بزنید.

نکته:

اگر می خواهید یک Partial View را در چندین View متعلق به کنترلرهای مختلف به کار ببرید، بایستی آن را در پوشه Shared Folder قرار دهید. در غیر این صورت می توانید آن را در همان پوشه View ای که می خواهید Partial View را در آن استفاده نمایید، بگذارید.

همانند تصویر زیر، در کادر Add New View، نام View را تعیین کرده و سپس گزینه “Create as a partial " را علامت بزنید.

آموزش کار با Partial View در ASP.Net MVC

در این مثال قصد نداریم تا از یک model برای Partial View استفاده کنیم، بنابراین کادر کشویی Template را خالی (Empty) با مقدار (without model) تنظیم کنید. این کار باعث ایجاد یک partial view خالی درون پوشه Shared Folder می شود.
هم اکنون می توانید کد بخش منو (Navigation Bar) را در فایل _HeaderNarBar.cshtml، همانند مثال زیر paste نمایید :

<div class="navbar navbar-inverse navbar-fixed-top">
  <div class="container">
        <div class="navbar-header">
                        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
            </button>
            @Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
        </div>
                        <div class="navbar-collapse collapse">
                        <ul class="nav navbar-nav">
                        <li>@Html.ActionLink("Home", "Index", "Home")</li>
                        <li>@Html.ActionLink("About", "About", "Home")</li>
                        <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
            </ul>
        </div>
  </div>
</div>

هم اکنون یک Partial View حاوی کد منوی بالای سمت راست را ایجاد کرده اید. در ادامه به آموزش نحوه reuder آن در صفحه مقصد خواهیم پرداخت.

آموزش Reuder Partial View :

شما می توانید یک Partial View را با استفاده از متدهای کمکی Partial()، ()Reuder Partial و ()Reuder Action در Partial View مورد نظر reuder کنید. ابتدا بیایید نگاهی کلی به هر کدام از متدهای فوق انداخته و ببینیم Partial View چگونه از آن ها استفاده می کند.

بررسی متد کمکی Html.Partial() :

متد کمکی @Html.Partial() نما Partial View تعیین شده برای آن را تولید (Reuder) می کند. این متد نام Partial View را به عنوان یک پارامتر string دریافت کرده و یک شی MVC HtmlString را بر می گرداند. از آنجایی که این متد یک html string را به عنوان خروجی بر می گرداند، بنابراین این امکان را دارید تا کد آن را قبل از reuder شدن، ویرایش نمایید.
جدول زیر، لیست حالت های مختلف فراخوانی متد کمکی Partial یا Overload های آن را نشان می دهد :

بررسی متد کمکی Html.Partial()
متد کمکی
Helper Method
توضیح
MvcHtmlString Html.Partial(string partialViewName)
این متد محتوی Partial View داده شده به آن را در View مورد نظر reuder می کند.
MvcHtmlString Html.Partial(string partialViewName,object model)
این متد نیز محتوی Partial View داده شده به آن را در View مورد نظر reuder می کند. پارامترهای Model، شی model object را به Partial View ، پاس می دهد.
MvcHtmlString Html.Partial(string partialViewName, ViewDataDictionary viewData)
این متد نیز محتوی Partial View داده شده به آن را در View مورد نظر reuder می کند، با این تفاوت که پارامترهای View data parameters شی data dictionary را به Partial View پاس می دهند.
MvcHtmlString Html.Partial(string partialViewName,object model, ViewDataDictionary viewData)
این حالت نیز محتوی Partial View Partial View داده شده به آن را در View مورد ظنر Partial View Partial Viewreuder می کند، با این ویژگی که پارامترهای مدل شی model object را و پارامترهای View data، شی view data dictionary را به Partial View ارسال می کند.

بررسی متد ()Html.ReuderPartial :

متد کمکی ()ReuderPartial همانند متد ()Partial است، با این تفاوت که هیچ مقداری را بر نمی گرداند (return void) و کد HTML تولید شده Partial View مورد نظر را به صورت مستقیم در یک http response می نویسد.
جدول زیر overload های مختلف فراخوانی متد ()ReuderPartial را نشان می دهد.

بررسی متد ()Html.ReuderPartial
متد کمکی
Helper Method
توضیح
RenderPartial(String partialViewName)
در این حالت، متد Partial View مورد نظر را Reuder می کند.
RenderPartial(String partialViewName, Object model)
این متد نیز Partial View مورد نظر را Reuder کرده و شی model object را تنظیم می کند.
RenderPartial(String partialViewName, ViewDataDictionary viewData)
این متد نیز Partial View مورد نظر را تولید کرده و خاصیت ViewData خود را با شی ViewDataDictionary جایگزین می کند.
RenderPartial(String partialViewName, Object model, ViewDataDictionary viewData)
این متد Partial View مورد نظر را تولید کرده و خاصیت ViewData متعلق به Partial View را با ViewDataDictionary خود جایگزین می کند. همچنین شی model object مورد نظر را تنظیم می کند.

بررسی متد کمکی ()Html ReuderAction :

متد کمکی ReuderAction یک کنترلر و action خاص مورد نظر را فراخوانی کرده و نتیجه را به صورت یک Partial View، اجرا (Reuder) می کند. متد Action تعیین شده بایستی با استفاده از متد Partial خروجی Partial;ViewResult را بازگرداند.
جدول زیر Overload های مختلف متد ()ReuderAction را نشان داده است :

بررسی متد کمکی ()Html ReuderAction
متد کمکی
Helper Method
توضیح
RenderAction(String actionName)
در این حالت تابع، متد child action تعیین شده را اجرا کرده و نتیجه را به صورت یک Parentl View تولید می کند.
RenderAction(String actionName, Object routeValue)
در این حالت تابع مانند child action تعیین شده را با استفاده از پارامترهای مورد نظر اجرا کرده و نتیجه را در یک Parent View تولید می کند.
RenderAction(String actionName, String controllerName)
در این حالت تابع، متد child action تعیین شده را با استفاده از نام کنترلر مورد نظر اجرا کرده و نتیجه را در یک Parent View تولید می کند.
RenderAction(String actionName, RouteValueDictionary routeValues)
در این حالت تابع، متد child action تعیین شده را با استفاده از پارامترهای خاص اجرا کرده و نتیجه را در یک Parent View تولید می کند.
RenderAction(String actionName, String controllerName, Object routeValue)
در این حالت، تابع، متد child action مورد نظر را با پارامترها و نام کنترلر تعیین شده، اجرا کرده و نتیجه را در یک Parent View تولید می کند.
RenderAction(String actionName, String controllerName, RouteValueDictionary routeValues)
در این حالت، تابع، متد child action مورد نظر را با پارامترها و نام کنترلر تعیین شده، اجرا کرده و نتیجه را در یک Parent View تولید می کند.

بنابراین، اکنون می توانید با استفاده از هر یک از متدهای reudering فوق، فایل _HeaderNavBar Partial View را تولید کرده و در صفحه _Layout.cshtml قرار دهید. در کد مثال عملی زیر، layout view با استفاده از متد ()ReuderPartial بخش Partial View را تولید کرده است :

<!DOCTYPE html>
<html>
<head>
                        <meta charset="utf-8" />
                        <meta name="viewport" content="width=device-width, initial-scale=1.0">
                        <title>@ViewBag.Title - My ASP.NET Application</title>
    @Styles.Render("~/Content/css") 
    @Scripts.Render("~/bundles/modernizr")
</head>
<body>
    @{
        Html.RenderPartial("_HeaderNavBar");   
    }
                        <div class="container body-content">
        @RenderBody()
        
                        <hr />
                        <footer>
                        <p>© @DateTime.Now.Year - My ASP.NET Application</p>
        </footer>
    </div>
    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)
</body>
</html>
نکته:

متد ReuderPartial مقدار Void را بر می گرداند. بنابراین بایستی یک ; را در انتهای دستورات آن قرار داده و آن ها را بین دو براکت } } قرار دهیم.s

در کد مثال عملی زیر نیز، layout view از یک متد Partial برای تولید _HeaderNavBar.cshtml در partial View استفاده کرده است :

<!DOCTYPE html>
<html>
<head>
                        <meta charset="utf-8" />
                        <meta name="viewport" content="width=device-width, initial-scale=1.0">
                        <title>@ViewBag.Title - My ASP.NET Application</title>
    @Styles.Render("~/Content/css") 
    @Scripts.Render("~/bundles/modernizr")
</head>
<body>
     @Html.Partial("_HeaderNavBar")   
                        <div class="container body-content">
        @RenderBody()
        
                        <hr />
                        <footer>
                        <p>© @DateTime.Now.Year - My ASP.NET Application</p>
        </footer>
    </div>
    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)
</body>
</html>
نکته:

از آنجایی که متد @Html.Partial() یک html string را به عنوان خروجی بر می گرداند، نیازی نیست بین براکت های دستوری قرار بگیرد.

در پایان، خروجی زیر را در هنگام اجرای برنامه در UI خواهید دید :

خروجی Partial View در ASP.Net MVC

بنابراین در روش فوق، می توانید از Partial view بدون هیچ تفاوتی در UI استفاده کنید.

نکاتی که بایستی به خاطر بسپارید :
  1. Partila View یک view چندین بار قابل استفاده است که می توان آن را به عنوان یک view فرزند در سایر view های مورد نظر استفاده کرد.
  2. هر Partial View را می توان با استفاده از متدهای کمکی Html.Partial()، html.reuderPartial() و یا html.ReuderAction() تولید کرد.
1396/03/19 8661 1103
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...