tutorial net mvc español code asp c# asp.net-mvc razor c#-6.0

c# - español - El nuevo operador nulo condicional en ASP.NET MVC Razor



tutorial asp net mvc 5 español (3)

Entonces, desde que salió C # 6.0, he usado bastante el operador condicional nulo. Ejemplo:

Model?.Person?.Zip

Sin embargo, ahora tengo una situación en la que tengo una solución donde el cliente opera en modelos de dominio en la vista. Mientras buscaba al desarrollador con un hacha, me resulta más fácil simplemente hacer algunas comprobaciones nulas en la vista.

Sin embargo, cuando hago esto en Razor:

@Model?.Person?.Zip

Mi Model? se ve como dinámico, pero ? rompe las cosas dinámicas y el resto se representa como texto.

¿Cómo resuelves esto?


Esto también puede ocurrir cuando te faltan uno o ambos de los siguientes paquetes NuGet del proyecto:

  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform
  • Microsoft.Net.Compilers

Para cierta completitud adicional (trabajo en el equipo ASP.NET en Microsoft):

Como Dieter B (y algunos otros) notan correctamente, @(Model?.Person?.Zip) funcionará.

La sintaxis @(...) se puede considerar como una "sintaxis de escape" que permite mucha más flexibilidad en términos de qué código se analizará como la expresión.

Cuando se compiló la versión actual de Razor, solo estaba disponible C # 5, por lo que las nuevas sintaxis C # 6 no eran compatibles directamente.

El equipo ASP.NET está buscando respaldar algunas de las versiones de Razor v4 (utilizadas en ASP.NET 5 / MVC 6) para C # 6 y volver a Razor v3 (utilizadas en ASP.NET 4.x / MVC 5).


Solo una suposición

@(Model?.Person?.Zip)