2013-02-17 16 views
16

Viene visualizzato l'errore: Impossibile trovare la pagina di layout "_Layout" nel seguente percorso: "~/Views/Home/_Layout".Impossibile trovare la pagina di layout

Ma l'impaginazione è a questo percorso: "~/Vista/Shared/_Layout"

Che cosa può essere per problema?

Ho appena iniziato il progetto ed è simile a questa:

Controller:

namespace Testing.Controllers 
{ 
    public class HomeController : Controller 
    { 
     // 
     // GET: /Home/ 

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

vista Indice:

@model dynamic 

@{ 
    ViewBag.Title = "title"; 
    Layout = "_Layout"; 
} 

<h2>title</h2> 

_ViewStart.cshtml:

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

Solution expl orer:

Solution Explorer:

+0

** "~/Views/Home/_Layout" ** è indicativo. hai qualche tipo di istruzione come @ layout = "~/Views/Home/_Layout" nella vista che solleva questo errore? –

+0

No, è simile al seguente: @ { ViewBag.Title = "title"; Layout = "_Layout"; } – anleon

+0

che aiuta. l'impostazione del percorso come indicato da @DarinDimitrov dovrebbe risolverlo –

risposta

21

Assicurarsi che nel file ~/Views/_ViewStart.cshtml aver impostato il percorso corretto:

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

Anche se nel vostro punto di vista si sta eseguendo l'override del layout di verificare che il percorso corretto è specifid per questo layout. E in aggiunta a ciò potrebbe esserci qualche codice lato server che sta impostando il layout (come filtri azione personalizzati, o il sovraccarico ViewResult che permette di specificare un layout, ...).


UPDATE:

Lei sembra aver impostare il layout in questo modo:

@{ 
    ViewBag.Title = "title"; 
    Layout = "_Layout"; 
} 

È necessario specificare la posizione in cui il layout come percorso assoluto:

@{ 
    ViewBag.Title = "title"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

Ma un modo ancora migliore è quello di sbarazzarsi di questa impostazione di layout nella vista Index:

@{ 
    ViewBag.Title = "title"; 
} 

Ora verrà utilizzato il valore dal tuo _ViewStart.cshtml.

+0

Sì, ce l'ho così – anleon

+0

Ho elencato altri possibili motivi nella mia risposta. Li hai controllati tutti? –

+0

Non dovrebbe essere, ho appena iniziato il progetto – anleon

Problemi correlati