routing - ASP.NET MVC: Form Input to pretty URLs -
मेरे पास एक URL है:
शिपमेंट / खोज / {searchType} / {searchValue}
और एक नियंत्रक कार्रवाई:
// शिपमेंट खोज प्रकार एक enum है ... पार्टनंबर, ग्राहक आउडर, आदि ... क्रिया खोज परिणाम (शिपमेंट खोज प्रकार टाइप करें, शब्द खोज searchValue)< / Pre>तो इसका मतलब है कि मैं सुंदर urls में टाइप कर सकता हूं जैसे:
शिपमेंट / खोज / पार्टनंबर / विजेट-01
और उन सभी लदानों की एक सूची प्राप्त करें भाग संख्या।
अब मैं आवेदन के व्यस्त काम कर रहा हूं और उस बिंदु पर गया जहां मैं एक खोज फ़ॉर्म बना रहा हूँ जो पार्ट नंबर के लिए पूछता है और यह खोज पर वापस पोस्ट करेगा। तो मूल रूप से मैं चाहता हूँ:
शिपमेंट / खोज / पार्टनंबर / {user-input-from-textbox}
दुर्भाग्य से मुझे ऊपर दिए गए यूआरएल पर कोई फॉर्म नहीं मिल सकता - यह सर्वर साइड जेनरेट करना होगा तो इसके बजाय मेरे पास एक पोस्ट अनुरोध मान के रूप में {user-input} के साथ शिपमेंट / खोज / पार्टनंबर पर वापस फॉर्म होगा।
इसलिए मैं निम्न के साथ समाप्त होता है:
[AcceptVerbs (HttpVerbs.Post)] ActionResult खोज (शिपमेंट खोज टिप खोज टाइप, स्ट्रिंग सर्च वैल्यू, बॉल्स पोस्ट) {वापसी रीडायरेक्ट टाओएक्शन ("खोज", नया {searchType = searchType, searchValue = searchValue}); }2 चीजें:
1) क्या क्लाइंट की तरफ जावास्क्रिप्ट इस्तेमाल किए बिना खोज की पोस्ट विधि रखने के लिए मुझे एक रास्ता मिल सकता है?
2) बूल? पोस्ट वैल्यू वहाँ है, इसलिए उनके पास अलग-अलग हस्ताक्षर हैं यह स्पष्ट रूप से बदसूरत है
संपादित करें:
"दुर्भाग्य से मुझे नहीं लगता कि मैं एक फॉर्म से ऐसा कर सकता हूं (बिना) कम से कम जावास्क्रिप्ट)। " & Amp; "क्या कोई तरीका है कि मैं जावास्क्रिप्ट का उपयोग किए बिना पद को प्राप्त कर सकता हूं?"
यह थोड़ा अस्पष्ट था मेरा क्या मतलब यह है कि मुझे नहीं लगता कि मैं एक फॉर्म यूआरएल / शिपमेंट / सर्च / पार्टनम्बर / {मूल्य-से- टेक्स्टबॉक्स} उत्पन्न कर सकता हूं और इसे एक फॉर्म मैनेजमेंट में प्राप्त कर सकता हूं। मुझे लगता है कि यह जावास्क्रिप्ट में करना आसान होगा (यूआरएल को गतिशील रूप से बनाने के लिए कार्रवाई सबमिट करना ओवरराइड) लेकिन मैंने ऐसा नहीं किया है मेरा यह मतलब नहीं था कि पोस्ट करने के लिए जावास्क्रिप्ट आवश्यक है।
मुझे एक ही स्थिति है, लेकिन यह जावास्क्रिप्ट के बिना काम ठीक है, मैं सिर्फ [पोस्ट] में फॉर्मकॉल्चेशन प्राप्त करता हूं और फिर इस तरह कार्य करने के लिए रीडायरेक्ट करता हूं:
[AcceptVerbs (HttpVerbs.Post)] ActionResult Search (FormCollection form) {वापसी RedirectToAction "खोज", नया {searchType = form ["searchType"], खोज वैल्यू = फ़ॉर्म ["searchValue"]}); } मुझे लगता है कि यह एक अच्छा समाधान है क्योंकि मैंने पोस्ट-रीडायरेक्ट-गैट पैटर्न के बारे में वीडियो देखा - जो कि asp.net mvc अनुप्रयोगों में अच्छा अभ्यास है।
Comments
Post a Comment