asp.net c# - ¿Cómo importo un espacio de nombres en la página de vista de Razor?




mvc html (9)

Puedes probar esto

@using MyNamespace

¿Cómo importar un espacio de nombres en Razor View Page?


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/


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.


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.


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;


Para la biblioteca

@using MyNamespace

Para modelo

@model MyModel

"using MyNamespace" funciona en MVC3 RTM. Espero que esto ayude.


Acabo de crear un método de extensión:

public static bool IsDebug(this HtmlHelper htmlHelper)
{
#if DEBUG
      return true;
#else
      return false;
#endif
}

Entonces lo usé en mis puntos de vista así:

<section id="sidebar">
     @Html.Partial("_Connect")
     @if (!Html.IsDebug())
     { 
         @Html.Partial("_Ads")
     }
     <hr />
     @RenderSection("Sidebar", required: false)
</section>

Dado que el ayudante está compilado con el símbolo DEBUG / RELEASE, funciona.





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