Почему внутренние члены в моей модели представления не доступны в представлении? - PullRequest
6 голосов
/ 27 апреля 2011

У меня есть некоторые внутренние автоматические свойства в моей модели представления, но мое строго типизированное представление не видит их.Все в одной сборке, так почему же это происходит?

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

.

@*My view*@
@model MyViewModel

@Model.PublicProperty

@Model.InternalProperty @*Causes compilation error*@

1 Ответ

12 голосов
/ 27 апреля 2011

Представления компилируются в отдельную динамически генерируемую сборку средой выполнения ASP.NET.Таким образом, вы не можете использовать внутренние свойства.Конечно, у вас все еще могут быть внутренние свойства в вашей модели, но как только вы сопоставите их с моделью представления, проблем не будет, так как вы всегда должны передавать модель представления в представление.

Вывод: всегда используйте толькообщедоступные свойства на ваших моделях представления.

...