2012-08-28 16 views
5

Controller.OnActionExecutedActionResult.Execute से पहले या बाद में कॉल किया जाता है?Asp.Net Mvc - Onactionexecuted को ActionResult से पहले या उसके बाद बुलाया जाता है। निष्पादित करें?

क्या घटना के दौरान कहीं भी एक समय रेखा है? मुझे अकेले google-fu के साथ कुछ भी नहीं मिला।

उत्तर

8

नियंत्रक .ऑनएक्शन एक्सेक्टेड को पहले कॉल किया जाता है।

एमएसडीएन पर this post देखें, इसमें एमवीसी के लिए नियंत्रक पाइपलाइन शामिल है।

  1. आवेदन के लिए पहला अनुरोध प्राप्त
  2. मार्ग
  3. नियंत्रक बनाएं MVC अनुरोध हैंडलर
  4. बनाएं नियंत्रक
  5. निष्पादित
  6. आह्वान कार्रवाई
  7. निष्पादित परिणाम प्रदर्शन करना
4

Below snapshot shows how execution take Place

http://www.asp.net/mvc/overview/older-versions-1/controllers-and-routing/understanding-action-filters-cs

कार्रवाई फिल्टर तर्क यह है कि पहले और एक नियंत्रक कार्रवाई निष्पादित करता है के बाद क्रियान्वित किया जाता है होते हैं। उदाहरण के लिए, एक नियंत्रक कार्रवाई लौटने वाले दृश्य डेटा को संशोधित करने के लिए आप एक एक्शन फ़िल्टर का उपयोग कर सकते हैं।

परिणाम फ़िल्टर में तर्क होता है जो दृश्य परिणाम निष्पादित होने से पहले और उसके बाद निष्पादित किया जाता है। उदाहरण के लिए, ब्राउज़र पर दृश्य प्रस्तुत करने से पहले आप दृश्य परिणाम को संशोधित करना चाहेंगे।

MVC Life Cycle

छवि सौजन्य: - http://www.dotnetinterviewquestions.in/article_explain-mvc-application-life-cycle_210.html

अनुच्छेद का विवरण: - https://www.codeproject.com/Articles/556995/ASP-NET-MVC-interview-questions-with-answers

किसी भी वेब आवेदन दो मुख्य निष्पादन चरणों पहले अनुरोध को समझने और अनुरोध के प्रकार के भेजने के आधार पर किया गया है उचित प्रतिक्रिया। एमवीसी अनुप्रयोग जीवन चक्र अलग नहीं है, इसके पहले दो मुख्य चरण पहले अनुरोध ऑब्जेक्ट बनाते हैं और दूसरा ब्राउज़र पर हमारी प्रतिक्रिया भेजता है।

अनुरोध ऑब्जेक्ट बनाना: - अनुरोध ऑब्जेक्ट निर्माण में चार प्रमुख चरण हैं। नीचे इसका विवरण स्पष्टीकरण दिया गया है।

चरण 1 मार्ग भरें: - एमवीसी अनुरोध रूट टेबल पर मैप किए जाते हैं जो बदले में निर्दिष्ट करते हैं कि कौन से नियंत्रक और क्रिया का आह्वान किया जाना चाहिए। तो अगर अनुरोध पहला अनुरोध है तो पहली बात मार्ग संग्रह के साथ मार्ग तालिका भरना है। यह रूट टेबल भरना global.asax फ़ाइल में होता है।

चरण 2 प्राप्त करें मार्ग: - "UrlRoutingModule" भेजे गए यूआरएल के आधार पर "रूटडेटा" ऑब्जेक्ट बनाने के लिए रूट तालिका की खोज होती है जिसमें किस नियंत्रक और कार्रवाई का विवरण शामिल है।

चरण 3 अनुरोध संदर्भ बनाया गया: - "रूटडेटा" ऑब्जेक्ट का उपयोग "RequestContext" ऑब्जेक्ट बनाने के लिए किया जाता है।

चरण 4 नियंत्रक उदाहरण बनाया गया: - यह अनुरोध ऑब्जेक्ट नियंत्रक वर्ग उदाहरण बनाने के लिए "MvcHandler" उदाहरण को भेजा गया है। नियंत्रक वर्ग ऑब्जेक्ट बनने के बाद यह नियंत्रक वर्ग की "निष्पादन" विधि को कॉल करता है।

प्रतिक्रिया ऑब्जेक्ट बनाना: - इस चरण में कार्रवाई को निष्पादित करने के दो कदम हैं और आखिरकार दृश्य के परिणामस्वरूप प्रतिक्रिया भेज रही है।

+0

अच्छा चार्ट, लेकिन यह अभी भी तकनीकी रूप से कवर नहीं होता है जब 'ActionResult' ** ** ** निष्पादित होता है। दूसरे शब्दों में, जब चीजें धारा में फंस जाती हैं। स्वीकार किए गए उत्तर में यह शामिल है। –

+0

@ जॉर्ज मॉयर सर अब मैंने इसे आसानी से समझने के लिए इसमें और विवरण जोड़े हैं – Saineshwar

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