2012-12-20 10 views
6

मेरे पास एक एक्शन रिसेट है जो एक और एक्शन रिसेट को बुला रहा है।एमवीसी एक्शन रीसल्ट एक और एक्शन रिसेट को बुला रहा है

मेरे पास मेरे केस स्टेटमेंट में एक्शन रिसेट के लिए कॉल है जो काम नहीं करता है।

public ActionResult GetReport(string pNum) 
    { 
    .... 

     switch (methodId) 
     { 
      case 1: 
      case 5:     
      { 
      var actionResult = GetP1Report("33996",false) as ActionResult; 
       break; 
      } 
     } 

     return actionResult; 
     } 

मैं निम्न त्रुटि: मैं निम्नलिखित है यह काम करता है, लेकिन नहीं तो 'ActionResult' वर्तमान संदर्भ

में मौजूद नहीं है काफी मैं क्या जरूरत है: यहाँ मैं क्या है

public ActionResult GetReport(string pNum) 
    { 
     .... 

     var actionResult = GetP1Report("33996",false) as ActionResult; 

     switch (methodId) 
     { 
      case 1: 
      case 5:     
      { 
      // var actionResult = GetP1Report("33996",false) as ActionResult; 
       break; 
      } 
     } 

     return actionResult; 
     } 

मैं अपने मामले बयान में काम करने के लिए ऐसी है कि वह दिख रहा है जब मैं

return actionResult 
कर ActionResult मिलता है
+0

क्या आपने 'RedirectToAction' माना है? – MilkyWayJoe

उत्तर

8

बस इसे पहले की घोषणा (एक डिफ़ॉल्ट मान के साथ, मुझे लगता है), स्विच बयान के बाहर:

ActionResult actionResult = null; 
switch (methodId) 
    { 
     case 1: 
     case 5: // PVT, PVT-WMT 
     { 
      actionResult = GetP1Report("33996",false) as ActionResult; 
      break; 
     } 
    } 

return actionResult ?? new View(); 

नोट: मैं मामलों के मामले में किसी से कुछ भी आवंटित में एक डिफ़ॉल्ट मान के रूप में ?? new View() कहा, actionResult - इसे आवश्यकतानुसार संशोधित करें।

+2

शून्य के लिए असाइनमेंट अनावश्यक है। – Kugel

+4

@ कुगेल नहीं, ऐसा नहीं है, आपको इसे कुछ असाइन करना होगा, या आपको 'असाइन किए गए स्थानीय चर का उपयोग" एक्शन रिसेट "' कंपाइलर त्रुटि मिल जाएगी। – McGarnagle

+1

@ कुगल अच्छी तरह से, सटीक होने के लिए, * * * * इसे * अपरिभाषित छोड़ सकता है अगर * हर * मामले में कुछ असाइन किया जाता है, लेकिन ओप प्रस्तुत नहीं किया गया है। – McGarnagle

0

समस्या परिवर्तनीय दायरा है। dbaseman लगभग यह सही था ... यह करें:

public ActionResult GetReport(string pNum) 
{ 
.... 

    ActionResult actionResult = new View(); // This would typically be assigned a 
             // default ActionResult 
    switch (methodId) 
    { 
     case 1: 
     case 5:     
     { 
      actionResult = GetP1Report("33996",false) as ActionResult; 
      break; 
     } 
    } 

    return actionResult; 
} 
+1

आपको 'actionResult = null' घोषित करने की आवश्यकता है या आपको' असाइन किए गए स्थानीय चर "actionResult" 'कंपाइलर त्रुटि का उपयोग 'प्राप्त होगा। –

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