2011-03-20 12 views
6

में अलग-अलग दृश्य लौटें यदि मेरे पास नियंत्रक है और मैं अपने सशर्त तर्क के आधार पर एक दृश्य वापस करना चाहता हूं, तो क्या यह संभव है? मेरे पास विभिन्न प्रकार के मॉडल हैं जो मैं अपने सशर्त तर्क (यदि कथन) पर निर्भर करता हूं, तो क्या मैं इसे कर सकता हूं? और मैं यह कैसे करूंनियंत्रक

उत्तर

16

निश्चित रूप से, वापसी दृश्य() दृश्य नाम को इसके पहले पैरामीटर के रूप में स्वीकार करता है। बस एक अलग दृश्य निर्दिष्ट करें।

यदि आपके पास अलग-अलग मॉडल हैं जो एक ही दृश्य में जाते हैं, तो उन्हें मर्ज करने का प्रयास करें, एक कंटेनर-मॉडल बनाएं (प्रति मॉडल प्रकार एक संपत्ति और फिर एक enum ताकि विचारों को पता चल सके कि क्या प्रस्तुत करना है), गतिशील का उपयोग करें दृश्य में मॉडल, या प्रति मॉडल एक दृश्य बनाएँ।

पहला और आखिरी मेरी पसंदीदा पसंद होगी, लेकिन यह विनिर्देशों पर निर्भर करता है।

2

आप

if (Request.IsAuthenticated) 
    return View("View1", new AuthenticatedViewModel(myValues1)); 
else 
    return View("View2", new AnonymousViewModel(myValues2)); 
(यह एक उदाहरण देख यदि कोई उपयोगकर्ता autheticated जाता है) अपने नियंत्रक में ऐसा ही कुछ कर सकते हैं