MVC 2 asp.net VC2010: где происходит «привязка данных»?

Вы можете поместить эту строку в свой файл .profile:

export NODE_PATH = "$ (префикс префикса npm config) / lib / node_modules"

Это сделает node использование глобального пути.

1
задан user415876 13 August 2010 в 05:17
поделиться

1 ответ

После длительного редактирования и перечитывания вашего сообщения я думаю, что понимаю, о чем вы спрашиваете. Причина, по которой ваш X_IndexViewModel связывается с CheckBox, который вы создали, заключается в том, что CheckBox назван точно так же, как и свойство модели. Они оба названы CheckBox1.

Именно здесь происходит волшебство ASP.NET MVC. Он сопоставляет свойства модели со значениями, где имена совпадают, и можно загрузить значения.

Поэтому, когда элементы управления размещаются, происходит обратное. Не имеет значения, что для получения данных используется другой класс, поскольку он сопоставляет имена свойств и ожидаемые типы. Поскольку данные отправляются в контроллер, который имеет модель со свойством с тем же именем, что и у элемента CheckBox в HTML, то он автоматически подставляет значение. Все это происходит за кулисами фреймворка MVC, и мне нравится называть это MVC MAGIC SAUCE.

Если вы хотите проверить это, возьмите свой пример и измените имя свойства XModel bool на CheckBox2. Значения не будут автоматически подбрасываться в принимающую модель, поскольку имя свойства больше не совпадает с именем (ID) элемента управления HTML.

То же самое можно сделать и с исходной моделью, которую вы передаете для создания представления (X_IndexViewModel). Измените ее на CheckBox2, и HTML больше не будет автоматически отражать значение в модели, поскольку свойство модели CheckBox2 не совпадает с именем контоля CheckBox1.

Вот некоторые другие ссылки, которые вы можете прочитать, где есть больше примеров и объяснений:

  1. ASP.NET MVC Model Binding
  2. ASP.NET MVC 2 Model Binding for a Collection
  3. 6 Tips for ASP.NET MVC Model Binding
2
ответ дан 2 September 2019 в 22:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: