ASP MVC / Sharp-Architecture новичок - как действия получают сущности домена в качестве входных данных?
-
07-07-2019 - |
Вопрос
Я испытываю острую архитектуру (и ASP.NET MVC) для нового проекта после того, как некоторое время нахожусь на периферии этого сообщества, и я немного растерялся. После генерации стандартного шаблона сущности я создал класс Message, и я могу перечислять, создавать, редактировать и удалять их. Р>
Я смотрю на действие Edit (Message) и просто не могу понять, как оно получает тип ввода Message. Вы нажимаете на btnSave, который отправляет форму в Сообщения / Изменить? Id = 1 , и что тогда происходит? Это соглашение определено где-то? Если да, то где?
Решение
Связыватель модели по умолчанию делает всю работу за вас. Он отражает действие контроллера, пытается создать новые типы объектов в аргументах, которые он нашел с помощью отражения, затем читает коллекцию форм и пытается выполнить некоторый анализ, чтобы сопоставить ключи коллекции форм с соответствующими значениями в обновленном объекте. Р>
Я говорю о синтаксическом анализе, потому что можно представлять объекты, которые не являются полностью плоскими в представлениях, и механизм связывания модели по умолчанию часто может правильно их получить. Хотя я этого не сделал, так как у меня нет подходящего варианта использования, возможно, можно передать несколько объектов и заставить механизм связывания модели «получить» его. Если нет, то было бы не слишком ужасно написать такой, который мог бы.
Другие советы
Я думаю, что когда вы используете строго типизированное представление, среда автоматически new
обнаруживает объект правильного типа и передает его в действие контроллера, проверяя все входные данные формы и используя немного размышлений, чтобы заполнить соответствующие свойства.