2014-12-01 16 views
5

Ho aggiunto una pagina di visualizzazione MVC 3 di tipo Razor alla radice del progetto ASP.NET MVC 3 esistente. ViewName: TestView.cshtml ho aperto il file di cui sopra e ha cercato di aggiungere la seguente riga di codice nella vista:Errore: il nome 'Url' non esiste nel contesto corrente in asp.net mvc3

<head> 
<link href="@Url.Content("~/Content/Styles/Themes/base/jquery.ui.all.css")" rel="Stylesheet" type="text/css" /> 
    <title></title> 
</head> 

Per la linea di cui sopra sto ottenendo un errore: Il nome 'URL' non esiste nel contesto attuale. Ma quando sto provando lo stesso in una vista all'interno della cartella Home o Account, sta funzionando bene per me. Qualcuno può aiutarmi a sapere cosa mi manca esattamente?

risposta

17

Questo perché aver creato la pagina di visualizzazione nella radice del progetto MVC, piuttosto che nella cartella Views.

Nelle visualizzazioni di cartella c'è un file web.config che ha la seguente sezione:

<system.web.webPages.razor> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
      <add namespace="System.Web.Mvc" /> 
      ... 

Gli spazi dei nomi specificati qui vengono utilizzati per compilare i punti di vista, che è il motivo per cui si ottiene il 'URL non esiste' messaggio di errore .

Si potrebbe provare a copiare il contenuto di web.config nella radice 'web.config' ma non sono sicuro che questa sia una buona idea. E dopo averlo fatto, potresti ricevere un avviso che non è stato registrato alcun provider di build, ma secondo lo this link funzionerà perfettamente.

Credo che si possa quindi registrare un nuovo RazorViewEngine personalizzato per specificare i nuovi percorsi per cercare la vista cartella as the default view engine searches for views in the Visualizzazioni`.

Non sono sicuro che potrebbe essere necessario apportare altre modifiche, ma a meno che non sia necessario disporre di Visualizzazioni nella cartella principale, si consiglia di spostare la vista nella cartella Views per consentirne il corretto funzionamento.

+0

Grazie per la risposta dettagliata :) –

Problemi correlati