2011-02-05 10 views
25

मैं कैसे निर्धारित कर सकता हूं कि वर्तमान कार्रवाई एक चाइल्डएक्शन है या मुख्य कार्यवाही है? क्या मुझे यूआरएल की जांच करनी चाहिए और कार्रवाई के नाम की तुलना करनी चाहिए? यह इतना अच्छा नहीं है, क्योंकि यह रूटिंग पैटर्न पर निर्भर है ...
या मुझे एक ही नाम के दो क्रियाएं करनी चाहिए, केवल एक बच्चे को एक पर रखना चाहिए और अलग तर्क (मुख्य रूप से वापसी() या PartialView()) लौटाना चाहिए? ओवरलोड को कैसे अलग किया जाएगा?वर्तमान कार्रवाई एक चाइल्डएक्शन है?

ठीक है, एक अन्य परिप्रेक्ष्य से: इसे कैसे बनाया जाए, अगर यह एक चाइल्डएक्शन है तो एक पार्टियल व्यू लौटाएं, अन्यथा पूर्ण दृश्य?

उत्तर

44

आप IsChildAction संपत्ति इस्तेमाल कर सकते हैं: देखने के अंदर

public ActionResult Index() 
{ 
    if (ControllerContext.IsChildAction) 
    { 
     // The Index action was invoked as child action using 
     // @Html.Action("index") 
    } 
    ... 
} 
+1

यही बात partialview वापस जाने के लिए 'अगर (Html.ViewContext.IsChildAction) { लेआउट = बातिल; } ' – Valdars

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