الانتقال من صفحة أ إلى صفحة B في Asp.Net. ما هي أفضل طريقة؟

StackOverflow https://stackoverflow.com/questions/855244

سؤال

ولدي المستخدم على ما سنطالب PageA.aspx. يحتاج هذا المستخدم للوصول الى PageB.aspx. الطريقة الواضحة هي أن يكون ارتباط تشعبي ببساطة يرسل لهم PageB.aspx. التي حصلت لي التفكير في طرق أخرى للحصول بين الصفحات. يمكن للمرء أن استخدام جافا سكريبت للقيام قفزة جانب العميل. وهناك أيضا ما يبدو ضخمة إعادة توجيه جانب الملقم.

ما أود أن أعرفه هو ما، إن وجدت، هي أداء يضرب بين هذه الأساليب المختلفة. وانا ذاهب لتولي جانب الخادم هو الوزن أكثر قليلا الثقيلة ولكن كم؟ هل هذه الأساليب مقياس مختلف؟ هل هناك أي مشاكل خفية مع القيام به اتجاه واحد مقابل آخر؟

وشكرا!

هل كانت مفيدة؟

المحلول

وارتباط الحقيقي هو الأفضل بالنسبة لمعظم الظروف. جميع وكلاء المستخدم معرفة ما هو ارتباط وما تمثله. فمن الأفضل لكبار المسئولين الاقتصاديين، وسهولة الوصول وسهولة الاستخدام.

وA-جانب الملقم (عبر إعادة النشر) توجيه أمر جيد إذا كنت بحاجة إلى ذلك، مثلا، تحتاج إلى تتبع تفاصيل عن الذي تم النقر صلة ... ولكن هذا طلبا إضافيا على الخادم (والوقت للمستخدم). ومن الأعمال الرديئة أيضا SEO (واخ) حتى انها فقط خيارا قابلا للتطبيق داخل "تطبيق ويب" الصحيح حيث يتم التحكم spidering أو الوصول أو تجاهل.

وJS يمكن أن تعطيك قوة تتبع لكنها غير مجدية (من تلقاء نفسه) في بيئات غير المعوقين حيث JS. إرسال النشاط مرة أخرى إلى الخادم يضيف تحميل بحيث شيء للنظر فيها.

على إذا كنت في حاجة إليها ، أو النظر في استخدام وصلات القياسية واستخدام مسج لربط النقر الأحداث لتعقب الأشياء. ولكن في الحقيقة ... إلا إذا كنت في حاجة إليها لأنها سوف يتباطأ تجربة المستخدم قليلا.

باختصار: إلا إذا كنت قد قمت سبب وجيه لا، والعصا مع المعايير

نصائح أخرى

وأعتقد أن السؤال المهم هو لماذا لم تذهب للمستخدم من PageA إلى PageB؟ ماذا تفعل لسبب هذا أن يحدث؟

وكان ذلك لأنها طلبت بعض الموارد المختلفة (أ "الحصول على")، أنها لم تقدم البيانات إلى الخادم الخاص بك (أي كان ذلك جزءا من "آخر")، يقوم المستخدم نعلم أن PageA يختلف عن PageB (هم من الناحية النظرية على نفس الموقع، ولكن وجهات نظر مختلفة منه) أو أي شيء آخر؟

واعتبارات أخرى مثل ما إذا كان PageB يمكن الوصول إليها دون PageA (يمكن أن تكون مرجعية، فهل يكون هو URL بك، يجب أن ينظر إليها على أنها URL مختلفة في المتصفح؟) ستوجه لكم.

ومن الصعب أن أعطيك "أفضل" حل دون فهم هذه الاشياء.

وأما بالنسبة للاستخدام على Server.Transfer أو Response.Redirect، والفرق بين هذين النهجين وقد تم تغطية هنا:

على Server.Transfer مقابل Response.Redirect Response.Redirect وعلى Server.Transfer متى يمكنني استخدام على Server.Transfer على PostBackURL؟

وأوه، وأيا من هذه المناسبة للحصول على التطبيق ASP.NET MVC حيث يجب، بدلا من ذلك، يتم توجيه إلى العمل على وحدة تحكم بدلا من ذلك.

<وأ href = "http://weblogs.asp.net/mikebosch/archive/2008/02/02/asp-net-mvc-tip-2-redirecting-to-another-action-and-passing- المعلومات لit.aspx "يختلط =" نوفولو noreferrer "> http://weblogs.asp.net/mikebosch/archive/2008/02/02/asp-net-mvc-tip-2-redirecting-to-another -action وعابرة المعلومات إلى it.aspx إعادة توجيه إلى العمل في وحدة التحكم الأخرى

وتوجهي العام هو أن أي صفحة تعرض البيانات يجب أن يكون الحصول عليها. يجب المشاركات قبول البيانات، ولكن ليس إعادته، IMHO.

وذلك I (تقريبا) تفعل دائما إعادة توجيه بعد آخر. انها تكلفة الطفيفة التي تمنع المستخدم خطأ.

لشيء واحد، ويمنع مشاركات متعددة من نفس البيانات - إذا كانت الإعادة المستخدم لأي سبب من الأسباب (أو يضرب على الزر مرة أخرى)، وأنا لا أريد البيانات إعادة تقديم

والقضية محرك البحث إلى مسألة مهمة أيضا. إذا PageB هو الصفحة التي تريد فهرستها، لن يتم العثور عليها عن طريق جافا سكريبت أو آخر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top