Respuestas:
Finalmente encontré la respuesta.
@using MyNamespace
Para VB.Net:
@Imports Mynamespace
Eche un vistazo a la respuesta de @ravy amiry si desea incluir un espacio de nombres en la aplicación.
La primera forma es usar la @using
declaración en los .cshtml
archivos, que importa un espacio de nombres solo al archivo actual, y la segunda:
En el archivo "web.config" en el Views
directorio " " de su proyecto (observe que no es el principal web.config 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 de esta manera:
<add namespace="My.Custom" />
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:
<pages pageBaseType="My.Custom.MyWebViewPage">
Saludos.
ACTUALIZACIÓN: ¡ Gracias a @ Nick Silberstein
por su recordatorio sobre áreas! Él dijo:
Si está trabajando dentro de una zona , debe agregar el namespace
plazo de la Web.config
virtud /Areas/<AreaName>/Views/
en lugar de
/Views/
Para la biblioteca
@using MyNamespace
Para el modelo
@model MyModel
using
principio de un archivo .cs es una palabra clave del compilador de C #. El @using
principio de un archivo .cshtml es una pista para el motor de plantillas Razor.
En ASP.NET MVC 3 Preview1 puede importar un espacio de nombres en todas sus vistas de rasuradora 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
Microsoft.WebPages.Compilation.AddGlobalImport
se cambió a System.Web.WebPages.Razor.WebCodeRazorHost.AddGlobalImport
.
Un problema que debe saber es que cuando importa un espacio de nombres a través web.config
de una Views
carpeta, namespace
se importa SOLO para las vistas en esa carpeta . Significa que si desea importar vistasnamespace
en un área , también debe importar eso namespace
, en el web.config
archivo de esa área , ubicado en la Views
carpeta del área ;
Para espacio de nombres y biblioteca
@using NameSpace_Name
Para el modelo
@model Application_Name.Models.Model_Name
Para iterar la lista en la página de Razor (debe 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>
}
Puedes probar esto
@using MyNamespace
Creo que para importar el espacio de nombres en la vista de afeitar, solo necesita agregar a continuación:
@using XX.YY.ZZ
Dependiendo de su necesidad, puede usar uno de los siguientes métodos:
si es necesario en todas las vistas posteriores, agregue "usando su.domainName;" en _ViewStart.cshtml. Puede encontrar más información sobre esto en: ¿Dónde y cómo se vincula el archivo de diseño _ViewStart.cshtml?
O agregue la referencia de ensamblaje en View web.config como lo describen otros explicados en: ¿Cómo implementa un @using en todas las vistas en Asp.Net MVC 3?