Свойство View
является псевдонимом для свойства ViewData
. Это означает, что следующий код
View.Title
эквивалентно
ViewData["Title"]
Это работает с использованием новой «динамической» функции языка C #, представленной в .NET 4. По сути, она позволяет вам писать код с поздней привязкой на том, что до сих пор было языком со статической типизацией. В Интернете много ресурсов, если вы хотите узнать больше.
Свойство ViewData
по-прежнему доступно, и вы можете использовать оба взаимозаменяемо. Они оба используют одинаковое резервное хранилище, поэтому изменения, внесенные одним способом, будут доступны другим способом.
Преимущество использования View
заключается в более кратком синтаксисе. Недостатком является то, что вы не получаете поддержку IntelliSense.
Причина, по которой вы можете установить View.Title
на странице просмотра и правильное значение отображается на странице макета, связана с порядком рендеринга страниц Razor. Мы называем это рендерингом наизнанку, что означает, что сначала выполняется ваша страница просмотра, ее вывод HTML собирается в буфер, затем выполняется страница макета и вывод страницы с буферизованным представлением вводится там, где вы вызываете RenderBody
.