6

Tengo algunas propiedades automáticas internas en mi modelo de vista pero mi vista fuertemente tipada no las ve. Todo está en la misma asamblea, entonces, ¿por qué está sucediendo esto?¿Cómo es que los miembros internos en mi modelo de vista no son accesibles en la vista?

public class MyViewModel { 
    public int PublicProperty { get; set; } 
    internal int InternalProperty { get; set; } 
} 

.

@*My view*@ 
@model MyViewModel 

@Model.PublicProperty 

@Model.InternalProperty @*Causes compilation error*@ 
+0

¿Qué error ves? usted tiene PublicProperty como Internal y InternalProperty como público, esa es su intención. –

+0

es un error estándar de compilación de referencia-no-definido-o-no-extensiones-método-encontrado. Uy. Solucioné el desajuste del modificador de acceso. ¡Gracias! – gabe

Respuesta

11

Las vistas se compilan en un ensamblaje generado dinámicamente separado por el tiempo de ejecución de ASP.NET. Entonces no puedes usar propiedades internas. Por supuesto, todavía podría tener propiedades internas en su modelo, pero una vez que las asigne al modelo de vista, no habrá ningún problema, ya que siempre debería pasar un modelo de vista a la vista.

Conclusión: utilice siempre propiedades públicas en sus modelos de visualización.

+0

intenté declarando 'public static darin {get; set;}' en mi clase A y devolviendo la clase de modelo a través de 'return view (new A())' a la vista puedo acceder a todas las propiedades pero no puedo acceder a 'darin' ? alguna idea –

Cuestiones relacionadas