مشکل کنترل منوی ASP.net و مرورگر Safari شرکت اپل ، بیان یک راه حل
در صورتیکه از کنترل منوی ASP.net استفاده کرده باشید و احیانا وب سايت خود را در مرورگر Safari شرکت اپل ببینید حتما تعجب خواهید کرد که چرا منو اینگونه نمایش داده می شود ، موتور ASP.net سافاری را بعنوان یک مرورگر ناسازگار برای این کنترل می شناسد و کدهای تولید شده برای این مرورگر با کدهای تولید شده برای IE , FireFox , Opera متفاوت است و به این دلیل است که شما منوی خود را به آن صورت که در IE , Firefox , Opera می بینید در Safari مشاهده نمی کنید ، می توانید کدهای تولید شده را با هم مقایسه کنید . اما برطرف کردن این مشکل نیازمند اعمال تغییراتی کوچک و صد البته ساده بر روی سرور است . ابتدا به مسیر زیر بروید.
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers
فایل mozilla.browser را در ویرایشگر notepad و یا هر ویرایشگر متنی دیگری باز کرده و به دنبال بخش زیر در این فایل بگردید:
<browser id=”Safari” parentID=”Gecko”>
یکی از زیر شاخه های این بخش کد زیر می باشد که شما باید آن را حذف نمائید:
<controlAdapters>
<adapter controlType=”System.Web.UI.WebControls.Menu” adapterType=”System.Web.UI.WebControls.Adapters.MenuAdapter” />
</controlAdapters>
بعد از حذف این بخش و ذخیره کردن تغییرات دستور زیر را از طریق خط فرمان اجرا نمائید:
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regbrowsers.exe -i
حال صفحه خود را بار دیگر در سافاری اپل مشاهده کنید ،مشکل عدم نمایش صحیح کنترل منو برطرف شده است :

قبل از تغییرات
بعد از تغییرات
منبع:
Big-O.comدر صورتیکه میخواهید بک آپ قبل از اعمال تغییرات داشته باشد خواهشا فایل mozilla.browser را در مسیری دیگر ذخیره کنید نه در همین مسیر و با نام دیگری چون با مشکل مواجه خواهید شد!