این مقاله به توضیح مفهوم smart navigation(هدایت هوشمندانه!) و چگونگى استفاده از آن مى پردازد.
مفهوم Smart Navigation و فواید آن:
Smart Navigation یکى از بهترین ابزارهاى جدیدى است که ASP.NET آنرا عرضه کرده است. این ابزار جدید باعث شده ظاهر برنامه هاى وب و احساسى که نسبت به آن وجود دارد شباهت بیشترى با برنامه هاى عادى و نوشته شده براى ویندوز پیدا کند.

یکى از موانع بزرگ برنامه هاى تحت وب به معمارى و ساختار HTTP برمى گردد. جاییکه مجبوریم اطلاعات جمع آورى شده در سمت مشترى را به سرور بازگردانیم. به همین دلیل مجبور به رسم مجدد و کامل صفحه اى که قبلا دیده ایم مى باشیم، که این نه تنها باعث مى شود یک حالت فلش مانند در این رفت و برگشت و رسم مجدد رخ دهد، بلکه براى صفحه هاى بلند که براى دیدن تمام صفحه نیازمند بهScrolling هستیم، باعث مى شود که دیدمان را به اول صفحه انتقال دهد، چیزى که هم شاید دلخواه ما نباشد و هم اینکه ممکن است باعث سردرگمى کاربر گردد. همچنین این فرآیند باعث تغییر فوکوس کنترل ها و بسیارى از اتفاقات دیگرنیز مى شود.

در برنامه هاى عادى ویندوز ما به طور معمول فقط قسمت هایى از صفحه را به روز مى کنیم که تغییرى در آن ایجاد شده باشد یا تحت تاثیر چیزى قرار گیرند و این بدون نیاز به تغییر در کل برنامه مى باشد (مثلا فقط یک عضو به Listbox ما اضافه مى شود. بدون تغییر و رسم مجدد فرم برنامه).

Smart Navigation یا به عبارتى هدایت هوشمندانه این توانایى موجود در برنامه هاى ویندوز را براى برنامه هاى تحت وب فراهم مى کند! اما قبل از هر چیز باید بدانید که این ابزار فقط براى IE مى باشد و آن هم نسخه هاى 5 به بالاتر آن. با این وجود شما مى توانید Smart Navigation را فعال یا غیرفعال سازید، بدون آنکه تاثیرى در برنامه شما بگذارد. حتى اگر شما در پروژه تان مرورگرهاى محتلفى را مدنظر قرار داده باشید، مى توانید Smart Navigation را فعال سازید. در این صورت ASP.NET نوع مرورگر را تشخیص داده و Smart Navigation را فقط براى مرورگرهاى پشتیبانى شده فعال مى سازد.

چهار مورد برجسته اى که Smart Navigation فراهم مى کند عبارتند از:

1• صفحه در میان درخواست ها یک نمایش ممتد را داراست و به عبارتى حالت فلش زدن به خود نمى گیرد.
2• موقعیت Scroll را حفظ مى کند.
3• فوکوس عضو دارنده فوکوس را نگه مى دارد.
4• آخرین صفحه درون تاریخچه (History) نگهدارى مى شود.

این ابزار در حالت واقع گرایانه براى برنامه هایى که ارسال به عقب(!) Postback فراوانى دارند طراحى شده است ولى با توجه به این نکته که محتواى صفحه نباید زیاد تغییر نکند. احتمالا بنا به دلایل کارایى و نه اینکه در تغییرات زیاد ایرادى بهم بزند - مترجم. شاید یک چیز شگفت آور در مورد این ابزار این باشد که شما در حقیقت نیاز به نوشتن هیج کد و برنامه اى ندارید.

نحوه استفاده:
Smart Navigation درون هدایت کننده صفحه (Page directive : <%@ %>)، براى تنظیم یک صفحه و درون web.config براى تنظیم کل برنامه استفاده مى شود. براى تنظیم در Page Directive به صورت زیر عمل کنید:
<%@ Page SmartNavigation=true %>

و براى تنظیم در Web.Config از ساختار زیر استفاده نمایید:

<Configuration>
<System.web>
<Pages SmartNavigation=true />
</System.web>
</Configuration>

روش کار اینگونه است که کل صفحه بدرون یک فریم دورنى مخفى (Hidden Frame) بارگذارى (Load) مى شود و سپس فقط قسمت هاى تغییر کرده دوباره رندر(Render) مى شوند.