Question

J'ai un Voir où j'utilise une convention de nommage sur mes textes champs, pour indiquer ce qui doit être fait avec le contenu une fois qu'il est réaffecté à mon contrôleur.

Le format est similaire à:

<input type="text" name="RegistrationLine#ID" /> pour les mises à jour

<input type="text" name="CreateRegistrationLine#LineNumber" /> pour créer

Maintenant que je suis en utilisant ce Naming-convention, modèle contraignant régulier est impossible. Mais je l'ai lu un peu sur le sujet et ai trouvé un peu d'une indication qu'il serait possible d'écrire un liant modèle personnalisé, qui devrait être en mesure d'aider analyser et lier ces éléments de formulaire et instancier les objets correctement.

S'il vous plaît lire: Bind formValue à la propriété des différents nom, ASP.NET MVC

est un peu semblable à ce que je fais exception, j'ai la complexité supplémentaire d'avoir des informations en annexe dans le formElement nom que je suis en train de se lier à.

Suis-je tout à fait farfelu ici? et sinon, peut tout de vous déposer quelques lignes de code pour montrer comment vous commenceriez ce modèle liant au large ..

Si cette approche est très mauvaise à ce que je suis vraiment en train de réaliser, j'aimerais entendre des suggestions pour de meilleures approches. Il suffit de noter que ce que je veux être en mesure de le faire est de retour après les mises à jour et crée en une seule fois.

Était-ce utile?

La solution

J'ai un peu d'accord avec @jfar et @omar. Je ne pense pas un liant modèle personnalisé est l'endroit où vous voulez être dans ce cas.

Vous pouvez passer un type complexe à votre point de vue et il suffit d'utiliser l'arrêt complet comme @jfar mentionné.

id="Model.Person.Name.FirstName" va se lier avec bonheur à un objet personne nommée qui a une classe qu'il a appelé nom qui a une propriété appelée FirstName.

Maintenant, si vous voulez faire des contrôles spéciaux sur les données que vous pourriez mettre en œuvre une classe partielle qui ferait les validations, etc et remplir les erreurs de ModelState.

public partial class Name
{
  public void Validate(){ }
  public int CreateRegistrationLine(){ }
  public bool DoSpecialActions(){ }
}

Il est un peu difficile de ce que vos actions spéciales font donc mon exemple ci-dessus peut ne pas être ce que vous voulez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top