2013-03-04 6 views
5

Sto creando un programma di black jack in C# utilizzando Nancyfx e il motore di visualizzazione Razor in Visual Studio 2012. Studi visivi Intelisense funziona ma ottengo questi errori di compilazione di Razor. Ho provato a specificare lo spazio dei nomi in app/web.config senza risultati.Errore di compilazione del rasoio con NancyFX

Error Details 
Error compiling template: Views/Game.cshtml 

Errors: 
[CS0246] Line: 1 Column: 11 - The type or namespace name 'Black_Jack' could not be found (are you missing a using directive or an assembly reference?) 

[CS0246] Line: 24 Column: 73 - The type or namespace name 'Black_Jack' could not be found (are you missing a using directive or an assembly reference?) 

Details: 
@using Black_Jack.Models 
@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<Game> 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
</head> 
<body> 
    @{ 

     foreach(var player in @Model.Players.players) 
     { 
      foreach(var card in player.Hand.Cards) 
      { 
       <p>@card.Name</p> 
      } 
     } 

    } 
</body> 
</html> 

risposta

12

Si prega di dare un'occhiata al proprio web.config e assicurarsi di avere le impostazioni del rasoio definite.

Avrete bisogno del sottostante:

<configSections> 
    <section name="razor" type="Nancy.ViewEngines.Razor.RazorConfigurationSection, Nancy.ViewEngines.Razor" /> 
</configSections> 

<razor disableAutoIncludeModelNamespace="false"> 
    <assemblies> 
     <add assembly="MyAssemblyName" /> 
    </assemblies> 
    <namespaces> 
     <add namespace="Black_Jack.Models" /> 
    </namespaces> 
</razor> 

Viene spiegato inoltre qui - https://github.com/NancyFx/Nancy/wiki/Razor-View-Engine

+0

Grazie! Ho visto il link in precedenza e non include il nome assembly del progetto stesso. Aggiungendolo mi ha dato un altro errore: 'Impossibile lanciare l'oggetto di tipo 'System.Dynamic.ExpandoObject' per digitare 'Black_Jack.Models.Game''. Ho refactored il mio codice per non inviare un ExpandoObject alla vista e ha funzionato. Tuttavia, questo ha reso superflua la voce assemblyname in web.config. Strano. –