Кажется, есть проблема с динамическими свойствами ViewBag.Допустим, у меня есть:
@{
ViewBag.Title = @Model.CourseName;
}
А затем в форме на странице у меня есть:
@Html.TextBox("Title", null, new {style="width:400px;"})
Где Название - это имя поля в таблице базы данных.
Когда страница открывается в первый раз, текстовое поле с идентификатором «Заголовок» принимает значение динамического свойства ViewBag.Title.
Я немного запутался в точных деталях привязки модели, но этодействительно является ошибкой, или если нет, то если это происходит естественным образом в результате процесса привязки, то было бы неплохо предупредить об этом.
Обход, который я нашел, былпереименовать свойство ViewBag в:
@{
ViewBag.Titulo = @Model.CourseName;
}
(название изменено на Titulo - всегда полезно знать другой язык, чтобы избежать столкновений имен ...)
И проблема исчезла.
Однако вопрос в следующем:
Можно ли ожидать такого поведения?Эту ошибку было легко найти (потребовался час, чтобы разобраться с ней, включая написание этого вопроса), но я подозреваю, что другие ошибки могут быть более, хм, повторными.
РЕДАКТИРОВАТЬ:
Перефразируя вопрос:
Связывает ли Model Binder автоматически свойства, найденные в ViewBag?Даже если существующее свойство существует в строго типизированной ViewModel, которую я передал на страницу?Конечно, ViewModel должен иметь предпочтение?