asp.net - net - razor mvc
¿Cómo importo un espacio de nombres en la página de vista de Razor? (10)
¿Cómo importar un espacio de nombres en Razor View Page?
"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 necesita agregar a continuación:
@using XX.YY.ZZ
En ASP.NET MVC 3 Preview1 puede importar un espacio de nombres en todas sus vistas de afeitar con este código en Global.asax.cs
Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");
Espero que en RTM esto se haga a través de la sección Web.config.
Encontré este http://weblogs.asp.net/mikaelsoderstrom/archive/2010/07/30/add-namespaces-with-razor.aspx que explica cómo agregar un espacio de nombres personalizado a todas sus páginas de afeitar.
Básicamente puedes hacer esto.
using Microsoft.WebPages.Compilation;
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
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 la instrucción @using
en los archivos .cshtml
, que importa un espacio de nombres solo al archivo actual, y la segunda:
En el archivo "web.config" en el directorio " Views
" de su proyecto (observe que no es el web.config principal en la raíz del proyecto) , busque esta sección:
<system.web.webPages.razor>
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
.
.
<!-- etc -->
</namespaces>
</pages>
</system.web.webPages.razor>
Puedes agregar tu espacio de nombres personalizado como este:
<add namespace="My.Custom" />
eso agregará el espacio de nombres a todos los archivos .cshtml (y / o .vbhtml); También puedes cambiar la herencia de vistas desde aquí, como:
<pages pageBaseType="My.Custom.MyWebViewPage">
Saludos.
ACTUALIZACIÓN: ¡ Gracias a @ Nick Silberstein
por su recordatorio sobre áreas! Él dijo:
Si está trabajando dentro de un área , debe agregar el namespace
dentro de Web.config
en /Areas/<AreaName>/Views/
lugar de /Views/
Para espacio de nombres y biblioteca
@using NameSpace_Name
Para modelo
@model Application_Name.Models.Model_Name
Para iterar la lista en la página de Razor (tiene que usar el bucle foreach para acceder a los elementos de la lista)
@model List<Application_Name.Models.Model_Name>
@foreach (var item in Model)
{
<tr>
<td>@item.srno</td>
<td>@item.name</td>
</tr>
}
Para la biblioteca
@using MyNamespace
Para modelo
@model MyModel
Puedes probar esto
@using MyNamespace
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 JUSTO para las vistas en esa carpeta . Significa que si desea importar un namespace
de namespace
en las vistas de un área , también debe importar ese namespace
, en el archivo web.config
esa área, ubicado en la carpeta Views
del área;