Что предназначено "данными представления со строгим контролем типов" у Asp. Сетевой MVC?
Спасибо
Сильно напечатанный вид в ASP.NET MVC наследует из System.Web.mvc.viewpage
и содержит модельное свойство, которое имеет тип, указанный T. Это позволяет Intellisense работать в вашем взгляды.
Каждый вид имеет свойство Модель
. Чтобы сильно напечатать вид, нужно наследовать от некоторых ViewPage
, а свойство Model становится типом T. Если вы не сильно напечатаете свой вид, то Model становится типом "Объект".
Сильный ввод модели вида имеет свои преимущества в том, что вы можете получить прямой доступ к свойствам Модели. Вы получаете интеллект и проверку компилятора, вместо того, чтобы полагаться на использование "волшебных строк" для доступа к словарю ViewData - который сломается во время выполнения, если ваша модель когда-нибудь изменится.
Например, если бы у вас была
public class Person
{
public int Age { get; set; }
}
и вы сделали свой View сильно напечатанным в классе Person
, вы смогли бы получить доступ к Model.Age
из ваших шаблонов представлений. Если бы ваше представление не было сильно набрано, то Model
не имело бы свойств, к которым вы могли бы получить доступ, и вам пришлось бы явным образом преобразовывать его в тип или передавать ваши данные через словарь ViewData.
Чтобы сильно набрать этот вид, просто сделайте его наследуемым от ViewPage
.
Допустим, вам необходимо отобразить несколько оскорблений связанных данных по мнению: контактная информация, прогнозы продаж и история вызовов. Вы могли бы просто ввести их в ViewData и вытащить их и сильно вводить их с точки зрения, однако лучший подход будет создать пользовательскую модель, которая заключается в том, что касается каждого из них. Тогда вы сильно напечатаете сам вид на эту пользовательскую модель. Он играет в безопасность типа и делает кодовую помощь более интуитивно понятным среди других преимуществ, таких как тестируемость.