ASP MVC / Sharp-Architecture новичок - как действия получают сущности домена в качестве входных данных? - PullRequest
1 голос
/ 13 сентября 2009

Я испытываю острую архитектуру (и ASP.NET MVC) для нового проекта, некоторое время находясь на периферии этого сообщества, и я немного растерялся. После генерации стандартного шаблона сущности я создал класс Message, и я могу перечислять, создавать, редактировать и удалять их.

Я смотрю на действие Edit (Message) и просто не могу понять, как оно получает тип ввода Message. Вы нажимаете btnSave, который отправляет форму в Messages / Edit? Id = 1 , и что тогда происходит? Это соглашение определено где-то? Если да, то где?

Ответы [ 2 ]

3 голосов
/ 13 сентября 2009

Связыватель модели по умолчанию делает всю работу за вас. Он отражает действие контроллера, пытается создать новые типы объектов в аргументах, найденных с помощью отражения, затем читает коллекцию форм и пытается выполнить некоторый анализ, чтобы сопоставить ключи коллекции форм с соответствующими значениями в обновленном объекте.

Я говорю о синтаксическом анализе, потому что можно представлять объекты, которые не являются полностью плоскими в представлениях, и средство связывания модели по умолчанию часто может правильно их получить. Хотя я этого не сделал, так как у меня нет подходящего варианта использования, возможно, можно передать несколько объектов и заставить механизм связывания модели «получить» его. Если нет, то было бы не слишком ужасно написать такой, который мог бы.

2 голосов
/ 13 сентября 2009

Я думаю, что когда вы используете строго типизированное представление, фреймворк автоматически new обнаруживает объект правильного типа для вас и передает его в действие контроллера, проверяя все входные данные формы и используя немного отражения для заполните соответствующие свойства.

...