2009-09-13 6 views
1

J'essaie une architecture pointue (et ASP.NET MVC) pour un nouveau projet après avoir été en marge de cette communauté pendant un moment et je suis un peu confus. Après la génération du modèle d'entité standard, j'ai créé un message de classe et je peux les lister, les créer, les modifier et les supprimer.ASP MVC/Sharp-Architecture débutant - comment les actions obtiennent-elles des entités de domaine en tant qu'entrées?

Je regarde l'action Edit (Message) et je ne peux tout simplement pas comprendre comment il obtient un type de message en entrée. Vous cliquez sur btnSave qui soumet le formulaire à Messages/Edit? Id = 1 et que se passe-t-il? Est-ce une convention définie quelque part? Si oui où?

Répondre

3

Le classeur de modèle par défaut fait le travail pour vous. Il réfléchit sur l'action du contrôleur, essaie de réécrire les types de l'objet dans les args trouvés par réflexion, puis lit le formulaire de collection et essaie de faire une analyse pour faire correspondre les clés de la collection de formulaires aux valeurs appropriées dans l'objet nouvellement créé. Je parle d'analyse car il est possible de représenter des objets qui ne sont pas entièrement plats dans les vues, et le classeur par défaut peut souvent les corriger. Bien que je n'ai pas fait cela parce que je n'ai pas un bon cas d'utilisation, il peut être possible de passer plusieurs objets et de faire en sorte que le classeur le 'prenne'. Sinon, ce n'est peut-être pas trop horrible d'en écrire une qui le pourrait.

+0

Donc, vous dites que le classeur modèle lie les champs post-retour à un modèle est-ce correct? Je suppose alors qu'il est possible de substituer le vôtre? –

+1

Oui c'est sûr. Google "asp.net mvc default modelbinder" vous l'enregistrez dans le global.asax –

2

Je pense que lorsque vous utilisez une vue fortement typée, le framework new place automatiquement un objet du type correct pour vous et le transmet à l'action du contrôleur, en inspectant toutes les entrées de formulaire et en utilisant un peu de réflexion pour remplir les propriétés correspondantes.

Questions connexes