2011-08-13 2 views
0
The view 'Art' or its master was not found. The following locations were searched 

~/Views/Home/Art.aspx 
~/Views/Home/Art.ascx 
~/Views/Shared/Art.aspx 
~/Views/Shared/Art.ascx 

J'ai créé la vue en utilisant le Razor View Engine. Ainsi, la vue existe dans le dossier Views dans le dossier Home avec le nom Art.vbhtmlWebforms portant sur Razor MVC erreur

S'il vous plaît me dire comment dire l'application Web dont il a besoin pour rendre les vues en utilisant le Razor View Engine

MISE À JOUR:

Problem using Razor after migrating MVC 2.0 to MVC 3.0 RC m'a aidé, mais maintenant il donne cette erreur ...

Type 'RazorViewEngine' is not defined 

ALTH ough, intellisense dans le studio visuel le montre et le souligne aussi comme un nom de classe.

MISE A JOUR II:

réponse de Nathan Ratcliff a aidé à éliminer l'erreur, mais maintenant la nouvelle erreur est produit dont les détails sont comme sous ...

The view at '~/Views/Home/Art.vbhtml' must derive from WebViewPage, or WebViewPage<TModel>. 

Nathan peut vous me aider cela aussi?

RÉSUMÉ RÉPONSE Pour ceux qui arrivent plus tard ce stade, la réponse fournie est suffisante pour effacer ma situation, mais je voudrais apporter quelques précisions au sujet de la réponse.

j'ai dû effectuer les étapes suivantes pour le moteur de rasoir en cours d'exécution dans mon application (à l'exception de la réponse):

  • Ajout d'un web.config dans le dossier Vues dans le projet (sections Ajout de code fourni dans la réponse ci-dessous dans le web.config).
  • Ajout d'une référence pour le fichier System.WebPages.dll dans mon projet.
+0

Quelle version de MVC utilisez-vous? MVC3 utilise le moteur de vue Razor par défaut. Si vous utilisez 3, effacez-vous spécifiquement la collection des moteurs de vue et ne chargez que le moteur de vue Webforms? –

+0

J'utilise MVC3 et je n'efface aucune collection de moteurs de vue.J'essaie d'exécuter à la fois des pages liées à MVC et des formulaires Web sur le même site Web. –

+0

Vous n'avez pas besoin d'effacer les moteurs de vue. Vous pouvez facilement exécuter les deux si vous en avez besoin. Vous obtiendrez un très faible impact sur les performances des vues, mais cela fonctionne très bien de cette façon. – BZink

Répondre

1

Assurez-vous que vous avez cela dans la section de compilation de votre web.config

<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

et enlever l'ancien.

En outre, les recommandations de www.asp.net pour la mise à niveau de 2,0 -> 3,0

http://www.asp.net/learn/whitepapers/mvc3-release-notes#upgrading

Edit:

Dans votre dossier de vue, il y a une web.config (pas celui à la racine de votre projet). Est-ce qu'il a les sections de configuration de rasoir?

<configSections> 
     <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
     <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
     <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
     </sectionGroup> 
    </configSections> 


    <system.web.webPages.razor> 
     <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
      <add namespace="System.Web.Mvc" /> 
      <add namespace="System.Web.Mvc.Ajax" /> 
      <add namespace="System.Web.Mvc.Html" /> 
      <add namespace="System.Web.Routing" /> 
     </namespaces> 
     </pages> 
    </system.web.webPages.razor>  
+0

Merci pour votre conseil. J'avais référencé le 'version = 2.0.0.0' dans mon web.config l'a changé en' version = 3.0.0.0' et il a commencé à fonctionner. Seulement qu'il a commencé à donner une autre erreur maintenant. Mise à jour ma description ci-dessus. Veuillez répondre à celui-ci également dans votre réponse. –

+0

Que diriez-vous des références de projet? Voulez-vous référencer la bonne version de System.Web? –

+0

'System.Web' n'est pas montré dans la liste des références et quand j'ai essayé de l'ajouter (après votre commentaire) il a donné l'erreur que' Le site Web fait déjà référence à l'assembly 'System.web'. –