¿Cómo importo un espacio de nombre en la página Razor View?

¿Cómo importar un espacio de nombres en la página Razor View?

Finalmente encontré la respuesta.

@using MyNamespace 

Para VB.Net:

 @Imports Mynamespace 

Eche un vistazo a la respuesta de @ Javad_Amiry si desea incluir un espacio de nombres en la aplicación.

La primera forma es usar @using statement en archivos .cshtml , que importa un espacio de nombre al archivo actual solamente, y el segundo:

En el archivo “web.config” en el directorio ” Views ” de su proyecto (observe que no es el principal web.config en la raíz del proyecto) , encuentre esta sección:

      . .     

Puedes agregar tu espacio de nombres personalizado así:

  

eso agregará el espacio de nombres a todos los archivos .cshtml (y / o .vbhtml); también puede cambiar la herencia de vistas desde aquí, como:

  

Saludos.


ACTUALIZACIÓN: ¡ Gracias a @ Nick Silberstein por su recordatorio sobre áreas! Él dijo:

Si trabaja en un área , debe agregar el namespace dentro de Web.config en /Areas//Views/ rather than /Views/

En ASP.NET MVC 3 Preview1 puede importar un espacio de nombres en todas las vistas de su afeitadora con este código en Global.asax.cs

 Microsoft.WebPages.Comstacktion.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace"); 

Espero que en RTM esto se haga a través de la sección Web.config.

Para la Biblioteca

 @using MyNamespace 

Para el modelo

 @model MyModel 

Encontré este http://weblogs.asp.net/mikaelsoderstrom/archive/2010/07/30/add-namespaces-with-razor.aspx que explica cómo agregar un espacio de nombre personalizado a todas sus páginas de afeitar.

Básicamente puedes hacer esto

 using Microsoft.WebPages.Comstacktion; public class PreApplicationStart { public static void InitializeApplication() { CodeGeneratorSettings.AddGlobalImport("Custom.Namespace"); } } 

y ponga el siguiente código en su AssemblyInfo.cs

 [assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")] 

el método InitializeApplication se ejecutará antes de Application_Start en global.asax

Un problema que debe saber es que cuando importa un espacio de nombres a través de web.config en la carpeta Views , ese namespace se importa SOLO para las vistas en esa carpeta . Significa que si desea importar un namespace de namespace en una vista de área , también debe importar ese namespace , en el archivo web.config esa área, ubicado en la carpeta de Views del área;

Puedes intentar esto

 @using MyNamespace 

“using MyNamespace” funciona en MVC3 RTM. Espero que esto ayude.

Creo que para importar el espacio de nombres en la vista de la maquinilla de afeitar, solo tiene que agregar a continuación:

 @using XX.YY.ZZ 

Para el espacio de nombres y la biblioteca

 @using NameSpace_Name 

Para el modelo

 @model Application_Name.Models.Model_Name 

Para Iterar la lista en la página Razor (Debe usar el bucle foreach para acceder a los elementos de la lista)

 @model List @foreach (var item in Model) {  @item.srno @item.name  }