¿Cómo importar un espacio de nombres en la página de vista Razor?
asp.net
asp.net-mvc-3
razor
webmatrix
Amitabh
fuente
fuente
Respuestas:
Finalmente encontré la respuesta.
Para VB.Net:
Eche un vistazo a la respuesta de @ravy amiry si desea incluir un espacio de nombres en la aplicación.
fuente
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:puedes agregar tu espacio de nombres personalizado de esta manera:
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 está trabajando dentro de una zona , debe agregar el
namespace
plazo de laWeb.config
virtud/Areas/<AreaName>/Views/
en lugar de/Views/
fuente
Para la biblioteca
Para el modelo
fuente
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
Espero que en RTM esto se haga a través de la sección Web.config.
fuente
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
y ponga el siguiente código en su AssemblyInfo.cs
el método InitializeApplication se ejecutará antes de Application_Start en global.asax
fuente
Microsoft.WebPages.Compilation.AddGlobalImport
se cambió aSystem.Web.WebPages.Razor.WebCodeRazorHost.AddGlobalImport
.Un problema que debe saber es que cuando importa un espacio de nombres a través
web.config
de unaViews
carpeta,namespace
se importa SOLO para las vistas en esa carpeta . Significa que si desea importar vistasnamespace
en un área , también debe importar esonamespace
, en elweb.config
archivo de esa área , ubicado en laViews
carpeta del área ;fuente
Para espacio de nombres y biblioteca
Para el modelo
Para iterar la lista en la página de Razor (debe usar el bucle foreach para acceder a los elementos de la lista)
fuente
Puedes probar esto
fuente
"Usar MyNamespace" funciona en MVC3 RTM. Espero que esto ayude.
fuente
Creo que para importar el espacio de nombres en la vista de afeitar, solo necesita agregar a continuación:
fuente
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?
fuente