Je ne suis pas sûr de savoir si j'ai encadré la question correctement ci-dessus dans le sujet, mais je vais essayer d'expliquer à mon mieux sur la question que j'ai.
J'ai ci-dessous et je reçois ce maintenant dans i et Dans le contrôleur, j'ai essayé de le recevoir comme ci-dessous: p> pour une raison quelconque, le modèle ci-dessus est toujours ContactusModel code> qui est un partie de
homeviewmodel code>, mieux dise classe de modèle imbriquée dans un seul
modèle code> p>
Modèle code> référé dans
homeviewmodel code> comme ci-dessous: p>
index.cshtml code> Voir fermement créer un Vue de formulaire comme ci-dessous: p>
ajax code> post ci-dessous: p>
null code>. Mais cela fonctionne si je renvoie le modèle code> code> comme
homeviewModel modèle code> au lieu de
Modèle ContactUndataModel code> dans le paramètre Controller comme ci-dessous: P>
public JsonResult ContactPost(HomeViewModel model)
{
var name=model.CUDModel.ContactName; //gets value
/*Fetch the data and save it and return Json*/
//Model is filled.
}
3 Réponses :
Utilisation de votre navigateur Web, inspectez chaque élément d'entrée DOM. Nom ". MVC mesure automatiquement les propriétés de vos entrées à la classe à l'aide de la propriété "Nom" de l'entrée. p>
Pour résoudre ce problème, vous pouvez créer un classeur de modèle personnalisé ou créer les entrées à la main, spécifiant la propriété Nom de manière à ce que le classeur de modèle automatique puisse les adapter aux propriétés de votre classe. P>
Cependant, il n'y a rien de mal à prendre votre action de contrôleur Plus d'informations, trouvé ici . p> homeviceModel code> comme argument. p>
Eh bien, votre lien a aidé à comprendre certains concepts, +1 pour cela, mais cela n'a vraiment pas résolu ma question ... J'ai également essayé de donner au nom code> comme un attribut HTML distinct code> mais modèle Nommé CODE> IT .. J'attendrai un peu plus de temps et de voir que si quelqu'un propose une explication appropriée, sinon ira et acceptera cela comme réponse .. Merci pour votre temps et votre effort ..
Votre point de vue indique le type que vous avez référencé dans la vue - @model.models.homeviewmodel code> -
Cudmodel code> est simplement une propriété de homesviewModel. p>
Je comprends cette partie @viperguynaz, mais je suis confondue avec sa structure. Même si le même modèle est rempli, pourquoi ne l'accepte-t-il pas directement?
Parce que votre vue est fortement dactylographiée sous forme de homeviewModel code>
Il conserve donc sa structure lorsqu'il est affiché, quelles que soient les propriétés consistaient à un modèle de base?
Si votre viewModel était un int code> - il posterait un
int code>.
Eh bien, si votre fichier Heureusement, vous pouvez utiliser l'attribut voir
cudmodel.contactname code> au lieu de simplement
ContactName code>, le classeur de modèle par défaut ne serait pas Soyez capable de le lier.
[bind] code> avec préfixe: p>
Eh bien, cela a du sens maintenant .. Je veux dire qu'il y a une certaine option pour la surmonter .. N'était pas au courant de Bind code> beaucoup .. Merci de partager, je vais mettre en œuvre cela et si cela va bien +15 pour vous.. :)
Regardez les attributs de noms des entrées dans la source de vue du navigateur - qui vous tira vous-même.
@ haim770 Je n'ai pas essayé ça .. va l'essayer une fois ..
Nom du bien de l'attribut sera une sorte de
cudmodel.contactname code> @IGOR .. Cela a du sens car il est extrait de
homebeviewmodel code> mais gère-t-il la même structure lorsqu'il est affiché. . C'est ce que je suis confondu avec ..
C'est ainsi que cela fonctionne dans
mvc code>? Je veux dire structure-sage, c'est tel que maintenu dans toute la partie de l'application? @ haim770