ASP.NET MVC में आप आसानी से एक पुनर्निर्देशन ActionResult लौटा सकते हैं:
return RedirectToAction("Index");
or
return RedirectToRoute(new { controller = "home", version = Math.Random() * 10 });
यह वास्तव में एक HTTP रीडायरेक्ट देगा, जो सामान्य रूप से ठीक है। हालाँकि, Google विश्लेषिकी का उपयोग करते समय यह बड़े मुद्दों का कारण बनता है क्योंकि मूल रेफ़र खो जाता है इसलिए Google नहीं जानता कि आप कहाँ से आए हैं। यह किसी भी खोज इंजन शब्द जैसी उपयोगी जानकारी खो देता है।
एक साइड नोट के रूप में, इस विधि में किसी भी पैरामीटर को हटाने का लाभ है जो अभियानों से आया हो सकता है लेकिन फिर भी मुझे सर्वर साइड पर कब्जा करने की अनुमति देता है। उन्हें क्वेरी स्ट्रिंग में छोड़ने से लोग बुकमार्क या ट्विटर या ब्लॉग को लिंक करते हैं जो उन्हें नहीं करना चाहिए। मैंने इसे कई बार देखा है जहाँ लोगों ने हमारी साइट के लिंक को अभियान आईडी से लिंक किया है।
वैसे भी, मैं साइट पर आने वाली सभी यात्राओं के लिए एक 'गेटवे' कंट्रोलर लिख रहा हूं, जिसे मैं अलग-अलग जगहों या वैकल्पिक संस्करणों पर रीडायरेक्ट कर सकता हूं।
अभी के लिए मैं Google के लिए अब (आकस्मिक बुकमार्क करने की तुलना में) अधिक परवाह करता हूं, और मैं किसी ऐसे व्यक्ति को भेजने में सक्षम होना चाहता हूं जो /
उस पृष्ठ पर जाता है /home/7
, जो अगर वे गए थे , जो एक होमपेज का संस्करण 7 है।
जैसा कि मैंने पहले कहा था कि अगर मैं ऐसा करता हूं तो मैं संदर्भकर्ता का विश्लेषण करने के लिए Google की क्षमता खो देता हूं:
return RedirectToAction(new { controller = "home", version = 7 });
मैं वास्तव में क्या चाहता हूँ a
return ServerTransferAction(new { controller = "home", version = 7 });
जो मुझे एक क्लाइंट साइड पुनर्निर्देशित किए बिना वह दृश्य मिलेगा। मुझे नहीं लगता कि हालांकि ऐसा कुछ मौजूद है।
वर्तमान में सबसे अच्छी बात जो मैं HomeController.Index(..)
अपने GatewayController.Index
एक्शन के लिए पूरे कंट्रोलर लॉजिक की नकल कर सकता हूं । इसका मतलब है कि मुझे इसमें 'Views/Home'
प्रवेश 'Shared'
करना था इसलिए यह सुलभ था। इसके लिए अवश्य ही एक बेहतर तरीका होना चाहिए??..
if
बयान भी एक समाधान को लुभाने वाला होता है।
RouteBase
ताकि आप if
एक नियंत्रक से दूसरे नियंत्रक पर कूदने के लिए सब कुछ झुकने के बजाय अपना बयान वहां रख सकें ?
ServerTransferAction
कि आप दोहराने की कोशिश कर रहे थे? क्या वह वास्तविक चीज है? (इस पर कोई जानकारी नहीं मिली ... सवाल के लिए धन्यवाद, btw, नीचे जवाब शानदार है)