2011-06-03 28 views
11

Intenté agregar espacios de nombres a configuration/system.web/pages/namespaces en el archivo web.config de mi aplicación ASP.NET MVC 3 para poder usar clases en esos espacios de nombres en mis vistas sin necesidad de usar @, sin embargo, no tiene efecto. ¿Cómo puedo agregar espacios de nombres a mis vistas?Agregar espacios de nombres a ASP.NET MVC 3 vistas

Respuesta

28

MVC razor tiene un área diferente para los espacios de nombres.

Busque en el segundo web.config, el que está en su carpeta de Vistas y agregue espacios de nombres de esta manera.

<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" /> 
      <add namespace="Telerik.Web.Mvc.UI;"/> 
     </namespaces> 
    </pages> 
</system.web.webPages.razor> 
+0

Heh, ni siquiera noté que había un web.config allí. Funciona al 100%, gracias y +1. Lo aceptaré en unos minutos. –

+0

Eres bienvenido. Aprendí de la manera difícil yo mismo ... –

+9

Nota, la respuesta a continuación de cerrar y volver a abrir la vista también era necesaria antes de que Visual Studio dejara de darme un error después de agregar la carpeta de recursos al espacio de nombres y reconstruir la solución. – Matthew

8

no estoy seguro de por qué es tan escamosa, pero es probable que es en realidad trabajan, pero Visual Studio no lo reconoce hasta que cierre y vuelva a abrir la vista en la que se encuentre. También asegúrese de estar en el archivo web.config que se encuentra en el directorio de Vistas.

+0

Intenté eso, no hay dados. ;) Me aseguré de intentar cargar y ejecutar la página antes de publicarla, y no compiló la vista. –

+0

¿Está modificando el archivo web.config en la raíz del directorio Views como @DisplacedGuy recomendado? Creo que eso debería ocuparse de eso. También asegúrese de estar en la jerarquía 'system.web.webPages.razor' si ese es el motor de vista que está usando. – ataddeini

+0

Sí, mi problema original era que estaba usando 'configuration/system.web/pages/namespaces' y no' system.web.webPages.razor' como sugería @DisplacedGuy. –

1

Utilicé este método para incluir archivos de recursos en mis vistas, pero Razor no quiso recoger mis clases. Después de algunos tirones de pelo me di cuenta de que no cambié el Modificador de Acceso en el archivo Resources.resx a público (se creó como Interno por defecto). Una vez que lo cambié & recompilado, pude acceder a mis recursos desde todas las vistas.

Error de novato, odio ver que ocurra, pero con suerte le ahorrará a alguien algo de dolor.

Cuestiones relacionadas