route net development component asp view environment-variables asp.net-core asp.net-core-mvc

view - development - Determine el nombre del entorno Core ASP.NET en las vistas



environment include development (2)

Para la verificación acabo de hacer un controlador API simple

[Route("api/[controller]")] public class DebugController : Controller { private IHostingEnvironment _hostingEnv; public DebugController(IHostingEnvironment hostingEnv) { _hostingEnv = hostingEnv; } [HttpGet("environment")] public IActionResult Environment() { return Ok(_hostingEnv.EnvironmentName); }

Luego simplemente ejecuto /api/debug/environment para ver el valor.

El nuevo marco Core de ASP.NET nos permite ejecutar diferentes html para diferentes entornos:

<environment names="Development"> <link rel="stylesheet" href="~/lib/material-design-lite/material.css" /> <link rel="stylesheet" href="~/css/site.css" /> </environment> <environment names="Staging,Production"> <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.0.0/css/bootstrap.min.css" asp-fallback-href="~/lib/material-design-lite/material.min.css" asp-fallback-test-class="hidden" asp-fallback-test-property="visibility" asp-fallback-test-value="hidden"/> <link rel="stylesheet" href="~/css/site.css" asp-append-version="true"/> </environment>

Pero, ¿cómo puedo determinar y visualizar el nombre del entorno actual en el _Layout.cshtml de una aplicación web ASP.NET Core MVC?

Por ejemplo, quiero visualizar el nombre del entorno (Production, Staging, Dev) como un comentario HTML para propósitos de depuración:

<!-- Environment name: @......... -->


Puede inyectar el servicio IHostingEnvironment en su vista haciendo
@inject Microsoft.AspNetCore.Hosting.IHostingEnvironment hostingEnv
y hacer un @hostingEnv.EnvironmentName