2010-08-22 11 views
12

मेरे पास मेरे एएसपी.नेट एमवीसी 2 एप्लिकेशन कुछ क्षेत्रों में विभाजित है। उनमें से एक मुख्य सूची में एक डिफ़ॉल्ट क्षेत्र है, और दूसरा क्षेत्र सूची में Account क्षेत्र है। अब, समस्या यह है कि मुझे इन दोनों क्षेत्रों के नियंत्रकों में एक ही दृश्य का उपयोग करने की आवश्यकता है।किसी भिन्न क्षेत्र से एक दृश्य लौटें

यदि वे एक ही क्षेत्र में थे, तो मैं केवल return View("ViewName") होगा, लेकिन मैं अपने Account क्षेत्र से नियंत्रक में अपने डिफ़ॉल्ट क्षेत्र से दृश्य वापस करने के लिए क्या कर सकता हूं? कोई विचार?

+0

बस एक नोट, आप इस दृश्य को '~/Views/Shared' फ़ोल्डर में चिपका सकते हैं और किसी भी नियंत्रक/क्षेत्र से 'वापसी दृश्य (" व्यूनाम ") को कॉल कर सकते हैं। – Omar

उत्तर

27

आप को देखने के सापेक्ष स्थान को निर्दिष्ट कर सकता है:

return View("~/Views/YourArea/YourController/YourView.aspx"); 

लेकिन जब एक दृश्य के कई क्षेत्रों के बीच साझा किया जाता है मैं तुम्हें जो बेहतर इस उद्देश्य में कार्य करता ~/Views/Shared फ़ोल्डर का उपयोग करने की सिफारिश करेंगे।

+0

धन्यवाद डारिन - मैं इसे आजमाउंगा। –

4

यह एक पुरानी सवाल, लेकिन अभी भी MVC में एक प्रासंगिक मुद्दे मुझे लगता है, इसलिए यहाँ है मैं इसे कैसे आप आसानी से सर्वर पथ बदलने के लिए, और अपने सभी निर्भर कार्यों स्वचालित रूप से अपडेट प्राप्त हो जाता है कि एक सूखी फैशन में हल है:

public class FooController : Controller 
{ 

    private ActionResult FooView(string name, string extension = "cshtml") { 
     return View("~/Areas/Bar/Views/Foo/" + name + "." + extension); } 
    } 


    public ActionResult SomeAction(){ 

     return FooView("AreaSpecificViewName"); 

    } 

    public ActionResult SomeOtherAction(){ 

     return FooView("AnotherAreaSpecificViewName", "aspx"); 

    } 

} 

यह साफ है, क्योंकि यह उस्तरा करने के लिए डिफ़ॉल्ट (.cshtml) फ़ाइलें देखना है, लेकिन यह स्पष्ट रूप से दूसरा पैरामीटर की आपूर्ति करके, के रूप में SomeOtherAction() में देखा सेट किया जा सकता।

यह आसान लेकिन आसान है, खासकर विकास के दौरान जब आपके क्षेत्र का मार्ग बदल सकता है या कुछ।

उम्मीद है कि किसी की मदद करता है।

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