2013-05-22 10 views
7

मैं अपने नियंत्रक में एक विधि है कि मैं ब्राउज़र का पता बार से कहा जा नहीं करना चाहती है से बुलाया जा रहा से कार्रवाई विधि अक्षम ...पता पट्टी

वहाँ ऐसा करने के लिए एक रास्ता है ? शायद कुछ प्रकार की एनोटेशन, मार्ग विन्यास में संशोधन? मेरे विकल्प कौन से हैं?

+0

आप इस 'एक्शन' को कैसे कॉल करना पसंद करेंगे? केवल 'एचटीपीपोस्ट'? या आप इसे 'नियंत्रक' के भीतर से कॉल करने जा रहे हैं? क्या यह 'एक्शन' की बजाय नियमित विधि हो सकता है? मुझे लगता है कि आप ऐसा करने में सक्षम होने का एकमात्र तरीका '[HttpPost] 'विशेषता का उपयोग कर कर रहे हैं। – Rohrbs

उत्तर

14

यदि आप केवल अपने नियंत्रक या दृश्य के भीतर से इस क्रिया का उपयोग करने जा रहे हैं तो आप ChildActionOnly विशेषता का उपयोग कर सकते हैं।

यदि आप POST का उपयोग करके इसे एक्सेस करना चाहते हैं तो आप [HttpPost] विशेषता का उपयोग कर सकते हैं।

लेकिन यदि आप इसे GET (यानी AJAX कॉल आदि का उपयोग करके) का उपयोग करना चाहते हैं और नहीं चाहते हैं कि उपयोगकर्ता पता बार का उपयोग करके इसे एक्सेस कर सकें तो आप अपने क्रिया AJAX को केवल tutorial का पालन कर सकते हैं।

या, आप बस एक विधि है कि सभी में एक कार्य नहीं है (अर्थात HTTP का उपयोग कर नहीं कहा जा सकता है) तो आप इसे private बनाने या पद्धति पर [NonAction] विशेषता

+0

मैं चाइल्डएक्शन जोड़ना चाहता हूं केवल वही दृश्यों से ही काम करेगा। अगर उन्हें नियंत्रक से कॉल करने का प्रयास किया गया है, तो आपको त्रुटि का सामना करना पड़ेगा * कार्रवाई 'प्रमाणीकरण' केवल एक बच्चे के अनुरोध से ही पहुंच योग्य है। * –

5

उपयोग NonAction विशेषता उपयोग कर सकते हैं चाहते हैं।

+1

क्या आप इस विशेषता को समझा सकते हैं? – Zulu

+0

@Zulu, विशेषता को नियंत्रक विधि पर लागू किया जाना है जिसे आप किसी क्रिया के रूप में अनुपलब्ध करना चाहते हैं: https://msdn.microsoft.com/en-us/library/system.web.mvc.nonactionattribute.aspx देखें । –

संबंधित मुद्दे