2010-01-22 14 views
15

में पोस्ट/रीडायरेक्ट/पैटर्न प्राप्त करें एएसपी.नेट एमवीसी में पोस्ट/रीडायरेक्ट/पैटर्न प्राप्त करने के लिए सबसे अच्छा अभ्यास क्या है? विशेष रूप से, जब आप प्रारंभिक कार्रवाई/नियंत्रक पर रीडायरेक्ट करना चाहते हैं तो ऐसा करने का सबसे अच्छा तरीका क्या है?एएसपी.नेट एमवीसी

यहाँ कैसे मैं वर्तमान में यह कर रहा हूं है: उपयोगकर्ता के लिए

  1. प्रदर्शन प्रपत्र।
    • रूप में, <%= Html.Hidden("returnUrl") %>
    • का उपयोग कार्रवाई में, का उपयोग ViewData["returnUrl"] = Request.Url;
  2. उपयोगकर्ता को पोस्ट
  3. पुनर्निर्देशन के माध्यम से प्रपत्र सबमिट returnUrl मॉडल बाध्यकारी, अगर नहीं null। अन्यथा, मुखपृष्ठ पर रीडायरेक्ट करें।

यह काम पूरा हो गया है, लेकिन ऐसा लगता है कि इससे बहुत अधिक नकल हो जाएगी। मुझे यह भी एहसास हुआ कि मैं शायद Request.UrlReferrer पर रीडायरेक्ट कर सकता हूं ...

आपको यह सुनिश्चित करने का सबसे साफ, सबसे आदर्श तरीका क्या है?

उत्तर

11

जिस तरह से आप यह कर रहे हैं ठीक है, लेकिन ऐसा लगता है कि आप इसे थोड़ा अधिक सोच रहे हैं। क्या आपके पोस्ट क्रियाएं एक से अधिक रूपों से फॉर्म पोस्ट लेती हैं? यदि नहीं, तो एक छिपे हुए फार्म फ़ील्ड से परेशान क्यों? आप एक साधारण RedirectToAction("MyAction")

+0

वर्तमान में, मैं एक से अधिक रूपों से फॉर्म पोस्ट नहीं लेता - इसलिए मैं निश्चित रूप से आपका बिंदु देखता हूं। इस विशेष मामले में, शायद मैं केवल RedirectToAction का उपयोग करूंगा। यदि, हालांकि, मेरे पास एक से अधिक रूप हैं, तो क्या आप अभी भी सुझाव देंगे कि मैं इसे अपनी वर्तमान विधि के माध्यम से करूँ? – Charles

3

आमतौर पर, एक पोस्ट जो एक पोस्ट को संभालने वाली कार्रवाई जानता है उसे सफल सबमिशन पर रीडायरेक्ट करने की आवश्यकता है। इसलिए, प्रत्येक क्रिया जो आरजीपी लागू करती है, केवल RedirectToAction(string) का आह्वान कर सकती है।

public ViewResult Edit(string email) 
{ 
    // save the email 
    return RedirectToAction("Edit"); 
} 
संबंधित मुद्दे