我的视图模型中有一些内部自动属性,但我的强类型视图看不到它们.一切都在同一个集会中,为什么会发生这种情况呢?
public class MyViewModel { public int PublicProperty { get; set; } internal int InternalProperty { get; set; } }
.
@*My view*@ @model MyViewModel @Model.PublicProperty @Model.InternalProperty @*Causes compilation error*@
解决方法
ASP.NET运行时在单独的动态生成的程序集中编译视图.所以你不能使用内部属性.您当然可以在模型上使用内部属性,但是一旦将它们映射到视图模型就没有问题,因为您应始终将视图模型传递给视图.
结论:始终只在视图模型上使用公共属性.