برای جلوگیری از کدهای تکراری سی شارپ در ویو ها از view start و برای جلوگیری از فضای نام و دستورات تکراری از view import استفاده میکنیم
می توانید یک فایل razor view start در فلدر Pages بسازید این فایل (_ViewStart.cshtml) با نام رزرو شده می باشد که درون خودش یک Layout با نام پیشفرص _layout دارد ،صفحاتی که برای آن ها Layout تعریف نشده باشد layout این فایل برای آنها ست میشود.
@{ Layout="_Layout"; }
اما واقعیت اینکه این فایل کاربیشتر از آنچه که فکر میکنید(ست کردن layout پیشفرض) انجایم میدهد. در واقع در این فایل (ViewStart.cshtml) هر کدی که در @{} قرار بدهید در تمامی صفحات همین فلدر (Pages) و صفحات فلدرهای زیرین (منظورم sub folder هست) قرار میگیرد.
پس با وجود فایل view start میتوانیم از کد های تکراری جلوگیری کنیم
یک فایل دیگری هم داریم که خصوصایتی مانند view start دارد (نام رزرو شده)و تنها فرقی که می کند برای ایمپورت کردن فضای نام ها و directive (دستورات) ها به کار برده میشود که نام آن _ViewImports.cshtml است._ViewImports.cshtml :
@using TopsyTurvyCakes.Models @namespace TopsyTurvyCakes.Pages @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
این دستورات و فضای نام ها در تمام صفحات ایمپورت شده اند. با این فایل میتوانیم از تکرار دستورات و فضای نام ها در صفحات مختلف جلوگیری کنیم.
نکته کد ها و دستوراتی و وفضای نام هایی که واقعا پرتکرار هستند را درون این فایل ها قرار دهید. مثلا اگر در یک صفحه فقط نیاز به یک فضای نام هست بهتر است که در بالای همون صفحه نوشته شود.