sintaxis net mvc cshtml asp asp.net asp.net-mvc-3 razor webmatrix

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;