استفاده از متا تگ ها با Master Pages در Asp.net
مقدمه :
زمانیکه می خواهید صفحات وبتان، از طریق موتورهای جستجوگر ارزیابی و اولویت بندی شود، المانهای بسیار مهم که در صفحاتتان باید مد نظر داشته باشید، عبارتند از <title> tag و description meta tag. تگهای <title> و meta tag ها معمولاًدر قسمت <head> هر صفحه Html نشان داده شده اند. می توانید آنها را در مثالی که از یک وب سایت Rhinoback online backup آمده ملاحظه کنید.

متن تگ <title> ، در بالای اکثر مرورگرهای نشان داده شده.

درصورتیکه تگ Meta description نداشته باشید، صفحه شما ممکن است با یک Descriptionی که از لابلای متن موجود در صفحه گرفته شده ظاهر شود. ولی همیشه بهتر است که متن description را خودمان مشخص کنیم تا اینکه موتور جستجوگر خودش این کار را انجام دهد.

&

دایرکتیو @Page از محتوای صفحه وب سایتی در Asp.net می باشد که از Master Page استفاده کرده است. همانطور که در قسمت بالا ذکرشد، ممکن است بخواهید، بجای اینکه متا تگ ها را در MasterPage level مشخص کنید ،در محتوای صفحه تعیین کنید. ممکن است که تا کنون متوجه شده باشید که دایرکتیو @Page خصوصیت Description ندارد، و نمی تواند برای صفحه شما Description متا تگ بسازد. در حقیقت، هر چیزی که در خصوصیت Description مشخص کنید، نادیده گرفته شده و برای هیچ چیز مورد استفاده قرار نمی گیرد.
برای من کاملاً غیر قابل قبول بود که در تمام صفحاتم یک Description داشته باشم. همچنین می خواستم که یک keyword هم مشخص نمایم تا هر صفحه را از صفحه دیگر متمایز سازد. اولین راه حل برای حل مشکل این بود که از Code-behind، جهت درج متا تگ های مطلوب درقسمت تگ <Head> هر صفحه استفاده کنم. در زیر می توانید این مساله را در متد Page_load محتوای صفحه مشاهده کنید.

مشکل این راه حل این است که عنوان صفحه، Meta Description، و محتوای صفحه همه بهم مرتبط هستند و من جداً می خواستم که Title و description هر دو با هم باشند و همچنین به عنوان محتوا در یک فایل Aspx قرار گیرند. متدPage_Load می تواند براحتی با تگ <script> در صفحهAspx جایگزین شود، ولی من به دنبال یک راه حل دیگر بودم تا بتوانم ساده تر آن را مدیریت کنم و به من اجازه بازبینی تگ های هرصفحه را بدهد.
راه حل :
من یک کلاس Base page که از System.Web.UI.Page، ارث بری کرده ساختم و محتوای صفحه را اصلاح کردم تا از کلاس Basepage ارث بری کند. کلاس Basepage شامل کدهای هستند که متا تگ ها را به مجموعه کنترلهای Header در صفحه اضافه می کند.
از آن جایی که محتوای صفحاتم از کلاس Basepage ارث بری می کنند، این کدها فقط لازمند که در یک صفحه قرار گیرند نه در تمام صفحات.








حال که محتوای هر صفحه از Basepage ارث بری میکنند، خصوصیت و کد لازم برای درج در متا تگها را دارا هستند. و حالا ما می توانیم مقادیر Meta_Keywords و Meta_Description را در فایل ASPX مشخص نماییم. به مثال زیر توجه کنید :



معرفي سايت مرتبط با اين مقاله
تصاوير زيبا و مرتبط با اين مقاله