2011-10-14 20 views
15

मैंने हाल ही में अपने एमवीसी 3 प्रोजेक्ट में कुछ बदलाव किए हैं।मेरा दृश्य _Layout.cshtml सहित क्यों नहीं है?

जब मैं इसे चलाता हूं, तो दृश्यों में Site.css जैसी कोई भी फ़ाइलें शामिल नहीं होती हैं। जब मैं अपना इंडेक्स() एक्शन कंट्रोलर डीबग करता हूं, तो यह _Layout.cshtml जैसी फ़ाइलों को शामिल किए बिना सीधे दृश्य पर कूदता है। तो मैं सिर्फ एक सफेद पृष्ठभूमि, कोई मेनू आदि के साथ एक दृश्य तक

Global.asax.cs फ़ाइल निम्न कोड:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapRoute(
     "Default", // Route name 
     "{controller}/{action}/{id}", // URL with parameters 
     new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
    ); 

    routes.MapRoute(
     "Default2", // Route name 
     "{controller}/{action}/{id}/{page}", // URL with parameters 
     new { controller = "Survey", action = "DisplayQuestions", id = "", page = "" } 
    ); 
} 

उत्तर

37

अपने नियंत्रक कार्रवाई में ब्रेकप्वाइंट मारा जा रहा है, तो मार्गों गलत हो सकता है लेकिन यह है कि के लिए _Layout.cshtml लोड नहीं करने का कोई कारण नहीं है।

कुछ बातें की जांच करने के:

  • देखें() और नहीं PartialView() का उपयोग कर अपने दृश्य है (उत्तरार्द्ध ViewStart.cshtml पर ध्यान नहीं देता और इतने _Layout.cshtml)।
  • क्या आपने हाल ही में अपना _Layout.cshtml स्थानांतरित किया था/क्या आपने नाम बदल दिया है (या दुर्घटना से साझा नियंत्रक बनाया है)?
  • क्या आपके विचार में शीर्ष पर ऐसा कुछ शामिल है जो _Layout.cshtml को निष्क्रिय कर देगा?

    @{ 
        Layout = ""; 
    } 
    
  • अपने _ViewStart.cshtml अभी भी निम्न कोड है जो _Layout.cshtml को सक्रिय करता है के साथ मौजूद है?

    @{ 
        Layout = "~/Views/Shared/_Layout.cshtml"; 
    } 
    
+0

व्यूस्टार्ट गायब था – Kenci

+0

मेरे पास अभी भी व्यूस्टार्ट है, लेकिन आज ही मेरी परियोजना ने लेआउट लोड करना बंद कर दिया ... wth। –

+0

स्पॉट पर! मेरा '_ViewStart.cshtml' गुम था। – Martin

1

अपने "डिफ़ॉल्ट" मार्ग के ऊपर अपने "Default2" मार्ग को ऊपर ले जाएं ।

डिफ़ॉल्ट मार्ग इतना Default2 पहले होना चाहिए

भी अधिक सामान्य है अपने विचारों के अंदर सुनिश्चित करें कि आप लेआउट को निर्दिष्ट कर रहे

@{ 
    Layout = "yourlayoutpage.cshtml" 
} 
+0

मदद के लिए धन्यवाद। यह किसी भी तरह से असंतुष्ट: एस अब काम करता है! – Kenci

+0

व्यू स्टार्ट को इस पर ध्यान रखना चाहिए। –

1

ऐसा लगता है उपयोग करने के लिए की तरह आप छुटकारा मिल गया है बनाने आपके सूचकांक दृश्य में लेआउट संपत्ति का।

@{ 
Layout = "~/Views/Shared/_Layout.cshtml" 
} 
-3

मैं जानता हूँ कि यह हल किया गया है लेकिन मेरे लिए (MVC 5) मैं नियमित रूप से देखने से पहले कोड की इस पंक्ति को जोड़ने के लिए किया था अपनी सामग्री प्रदर्शित

public ActionResult Index() 
{ 
    return View(); 
} 
+2

क्यों एक डाउन वोट? मतदान से पहले कम से कम समझाओ !! – Computer

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