/ / ब्राउज़र में स्ट्रिंग के लिए दिखाई देने वाली "एक्शन रीडायरेक्ट" के माध्यम से मॉडल पास करें - c #, .net, asp.net-mvc, url-redirection

ब्राउजर में यूआरएल स्ट्रिंग के लिए दृश्यमान "कार्रवाई करने के लिए रीडायरेक्ट" के माध्यम से मॉडल पास करें - सी #, .net, asp.net-mvc, url-redirection

बात यह है कि मैं पहले कंट्रोलर से मॉडल में कुछ डेटा को उसी कंट्रोलर के दूसरे एक्शन में पास कर रहा हूँ लेकिन मॉडल में डेटा URL क्वेरी स्ट्रिंग में दिखाई देता है। यह क्रिया का चित्र है जहाँ मैं कुछ डेटा पुनर्निर्देशित कर रहा हूँ

यह इस तरह से क्वेरी स्ट्रिंग को दिखाई देता है यहां छवि विवरण दर्ज करें

अभी व

1 - क्या क्वेरी स्ट्रिंग में उस डेटा को छुपाने का कोई उपाय है Temp Data का उपयोग करने के अलावा अन्य

2 - और कार्रवाई से पुनर्निर्देशन ग्राहक से क्यों हो रहा है ??

3 - ऐसा लगता है कि रीडायरेक्शन में गेट मेथड के जरिए डेटा पास किया जा रहा है, क्या ऐसा कोई तरीका है जिससे मैं बॉडी (यानी पोस्ट) में डेटा पास कर सकता हूं।

उत्तर:

जवाब के लिए 2 № 1

एमवीसी पुनर्निर्देशन विधि केवल भेजती हैक्लाइंट (ब्राउज़र, इस मामले में) प्रतिक्रिया में "स्थान" नामक एक HTTP हेडर, और सुझाए गए रीडायरेक्ट को इंगित करने के लिए 302 "फाउंड" के लिए स्थिति कोड सेट करता है। उस शीर्षलेख में आपके द्वारा निर्दिष्ट दृश्य का URL होता है, और किसी भी मॉडल डेटा को क्वेरिस्ट्रिंग पर रखता है।

ग्राहक चुन सकता है कि उस URL पर जाना है या नहींया नहीं। ब्राउज़र आमतौर पर लिंक का स्वचालित रूप से अनुसरण करते हैं, क्योंकि यह ऐसा करने के लिए उपयोगकर्ता के अनुकूल है। अन्य HTTP क्लाइंट ऐसा नहीं कर सकते। यह कैसे काम करता है - यह केवल एमवीसी के लिए नहीं बल्कि पूरे वेब पर सामान्य है। रीडायरेक्ट हमेशा GET के रूप में किया जाता है, यह किसी अन्य HTTP विधि के माध्यम से रीडायरेक्ट करना संभव नहीं है।

यदि आप बिना रीडायरेक्ट के केवल दृश्य प्रदर्शित करना चाहते हैं, तो उपयोग करें

return View("addLeaveEntitlement", result.Model)

फिर वहाँ केवल एक अनुरोध है, कोई पुनर्निर्देश नहीं है, और URL बिल्कुल भी नहीं बदलता है ("ऐड" दृश्य के नियमित URL तक नहीं - यह वांछनीय हो सकता है या नहीं भी)।