• مقایسه RenderPartial ، RenderAction ،Partial و Action  در MVC Razor
مقایسه RenderPartial ، RenderAction ،Partial و Action در MVC Razor
1395/09/06 - 10:36:52 // MVC 5 & 6 // 0 نظر // 4770 بازدید

همانطور که در حین تولید یک پروژه ASP.NET همه ما مشاهده کرده ایم، صدا زدن و استفاده از PartialView ها در RunTime راههای مختلفی خواهد داشت.حتی گاهی مشاهده شده برنامه نویسان دچار سردرگمی گشته و به درستی نمی دانند هر کدام از این راهها چه تفاوتها، معایب و مزایایی دارد و جای درست استفاده از هر کدام کجاست.

بسمه تعالی

مقایسه RenderPartial ، RenderAction ،Partial و Action در MVC Razor

همانطور که در حین تولید یک پروژه ASP.NET همه ما مشاهده کرده ایم، صدا زدن و استفاده از PartialView ها در RunTime راههای مختلفی خواهد داشت.حتی گاهی مشاهده شده برنامه نویسان دچار سردرگمی گشته و به درستی نمی دانند هر کدام از این راهها چه تفاوتها، معایب و مزایایی دارد و جای درست استفاده از هر کدام کجاست.

در این قصد داریم خیلی سریع و کوتاه به بررسی انواع این روشها و مزایا و معایب هر کدام بپردازیم.

راههای ممکنه به شرح زیر است.

1-Html.RenderPartial

2-Html.RenderAction

3- Html.Partial

4-Html.Action

حال به صورت مجزا به بررسی هر یک خواهیم پرداخت.

1- Html.RenderPartial

این روش نتیجه حاصله را به صورت مستقیم به Stream خروجی منتقل و میتوان آنرا را نسبتا سریعتر از دیگر روشها قلمداد کرد.این روش حتی بدون ایجاد هیچ Action خاص و مجزایی قابل استفاده است. به مثال زیر که جهت نمایش کامنت بکار میرود دقت کنید.

@{Html.RenderPartial("_Comments");}

2-Html.RenderAction

این روش هم نتیجه حاصله را مستقیم به Stream ارسال میکند، ولی برای اجرا به یک Action مجزا نیاز خواهد داشت. به مثال زیر دقت کنید.

@{Html.RenderAction("Category","Home");}

در این مثال یک Action Method به نام Category درون HomeController وجود دارد که از طریق این دستور صدا زده خواهد شد. این روش در مواردی که قصد استفاده از Cache حاصله وجود داشته باشد، بسیار کاربردی و مفید خواهد بود. این روش و روش شماره 1 به صورت مستقیم مقادیر تولید شده را به HTTP response stream منتقل خواهند نمود. شایان ذکر است، وجود یک Child Action در این روش الزامی است.

3- Html.Partial

در این روش نتیجه مقادیر Render شده به صورت HTML Encode خواهد بود. در این روش نتیجه در یک Variable ذخیره شده و به صورت یک String Type برگردانده خواهد شد.در این روش هم نیازی به ایجاد یک Action مجزا وجود نخواهد داشت.

1. @Html.Partial("_Comments")

4-Html.Action

در این متد از صدا زدن PartialView ها نتیجه به صورت یک HtmlString به خروجی ارسال خواهد گردید.در این روش به وجود یک Child Action نیاز خواهد بود.

@{Html.Action("Category","Home");

 

حال باید هر کدام از روشهای فوق را در پروژه ها بر حسب وضعیت مورد بررسی قرار دهید تا آرام آرام به نتیجه گیری درست رسیده و بهترین انتخاب را داشته باشید.
علی کلاهدوزان
معرفی نویسنده : علی کلاهدوزان

سلام بر دوستان ،
شاید رایج است به عنوان پروفایل کاربر ، چند خطی راجع به خودم بنویسم ، ولی وضعیت کاری و سوابق من با یک جستجوی ساده در گوگل مشخص خواهد شد ، لذا سرتان را با مطالب بی مورد به درد نیاورم بهتر است . اگر نکته خاصی لازم بود بدانید در قسمت "ایلیا سافت در یک نگاه" به احتمال زیاد یافت خواهد شد . جزئیات بیشتر را سوال کنید ، آدرس ایمیل Ali@Kolahdoozan.com همیشه جوابگوی شماست .امیدوارم از مطالب سایت استفاده کرده باشید . شاد و پیروز باشید .

امتیاز به مطلب
           
برچسب ها
MVC Partial Views Razor Views 
نظرات کاربران
ارسال نظر