0
votes

Pourquoi est-ce que je reçois le "champ est requis" d'erreur de validation, même si le champ est passé avec le formulaire?

J'écris une application Web de Core 3.0 MVC .NET 3.0 MVC. J'ai un modèle jobappaplication qui ressemble à ceci: xxx

Comme vous pouvez le constater, le modèle contient des références à l'offre d'emploi créée et le demandeur qui a créé L'application.

J'ai aussi un contrôleur jobapplicationController qui comporte 2 Créer Méthodes: xxx

Comme vous pouvez le constater, l'un d'entre eux renvoie la vue Create , l'autre obtient le modèle de la vue et l'ajoute à la base de données. Je souligne également que dans la première méthode, les champs «Jobofferoffer» et «demandeur» sont extraits de la base de données et ont transmis au formulaire avec un modèle. Voici comment la vue est configurée: xxx

Tout semble bien. Cependant, lorsque j'essaie d'ajouter une application et de soumettre le formulaire, je reçois une erreur: xxx

Je ne comprends pas. J'ai les deux champs de mon modèle. Comment faire ça va partir?

Merci beaucoup à l'avance.


1 commentaires

Au lieu de caché pouvez-vous essayer caché pour?


3 Réponses :


2
votes

Vous devez utiliser cachée pour () au lieu de cachée ().

Lire ici à comprendre la différence entre les deux.


0 commentaires

1
votes

Je pense que c'est parce que nécessaire. Parce que la propriété de navigation est un objet complexe et ne doit pas être requis xxx


0 commentaires

1
votes

Dans la vue, vous dites, @ html.HÉDITS ("offre", modèle.joboffer) . Il devrait plutôt être @ html.hidifié ("jobofferoffer", modèle.joboffer) car c'est le nom de la propriété. Vous ne feriez pas cette erreur si vous utilisiez cachée pour.

sur un niveau plus abstrait, vous liez directement à l'entité de la base de données. Ce n'est jamais une bonne idée. Vous devez utiliser un modèle pour obtenir les valeurs affichées, puis copier ces valeurs à l'entité. Vous pouvez utiliser automapper pour le faire automatiquement pour vous.


1 commentaires

Merci, c'est une bonne suggestion.