Je suis nouveau à MVC et lorsque j'ai construit mes classes de modèle pour une première approche de code, chaque colonne ID de clé avait l'attribut Le problème que j'ai couru en utilisant Ma question que j'espère que quelqu'un pourrait élaborer, est ce que le point d'avoir un attribut comme Le travail autour que j'ai trouvé si vous définissez cet attribut sur [ScaffoldColumn (false)] code> défini. Je l'ai fait parce que je ne voulais pas que les identifiants affichés dans les points de vue soient évidemment, et je sais qu'un travail à ce problème supprimerait le HTML généré par l'interface utilisateur dans chaque vue contenant un champ d'identification. P>
scabaffoldcolumn code> défini sur
false code> dans les modèles a été remarqué pour la première fois lors d'une méthode d'édition pour une vue, et j'ai reçu cette erreur. : Stocker la mise à jour, l'insertion ou la suppression de l'instruction affectait un nombre imprévu de lignes (0). Lorsque j'ai exécuté le code de débogage, la propriété ID était en fait définie sur zéro comme indiqué dans mon avis edit
httpport code> méthode. P>
ScaffoldColumn code> en MVC si l'ID n'est pas envoyé à une méthode (s) de contrôleur comme dans ce cas un edit
httpport code>? Devrais-je simplement y aller à la fois la voie de la vie ancienne et supprimer le marquage HTML dans chaque vue créé par les temples MVC générés lorsque cet attribut n'est pas ajouté à une clé / des propriétés de clé étrangère? P>
false code> ajouté un paramètre d'identifiant à chaque
httpport code> méthode et de définition du champ de propriété d'identifiant approprié avant d'appeler
SAVECHANGES () CODE>. P>
3 Réponses :
Eh bien, vous ne voulez pas que ce soit échafaudé comme un champ modifiable, mais bien sûr, vous le souhaitez sous la forme, comme vous l'avez remarqué. La solution consiste simplement à l'ajouter manuellement sous forme de champ caché dans la vue. Quelque chose comme ceci:
C'est un excellent travail autour de ce que je n'ai pas pensé, mais quelle est la manière commune la plupart des programmeurs MVC traitent de masquer les propriétés principales sous des vues, ou est votre exemple la solution standard lors de la définition d'un échafaudage sur OFF, puis ajoutez un champ caché à la vue. ? Merci...
Je ne sais pas quelle est la solution standard, mais c'est comme ça que je le fais. Il est un peu surprenant qu'il n'y ait apparemment aucun moyen d'échafauder un champ aussi caché. Vous peut I> faire éditeur pour B> rendre une propriété comme champ masqué, cependant: Stackoverflow.com/questions/4542972/...
... Ajout, je pense qu'en général échafaudage n'est pas destiné à être prêt à la production, juste un moyen d'obtenir quelque chose de fonctionnel rapidement.
Je pense aussi, @ html.Hiddenfor est la solution standard jusqu'à présent dans MVC dans de tels scénarios
Vous pouvez utiliser des annotations de données pour cela et travailler avec: de cette façon, votre champ sera affiché à l'aide d'une entrée cachée dans la vue. Pas besoin d'apporter des modifications, la vue saura comment l'afficher. P> p>
[Scaffoldcolumn (Faux)], il masque simplement la propriété. Supposons que vous ayez une propriété auto incrémentée d'une pièce d'identité. L'utilisateur n'a rien à voir avec cette propriété. Alors utilisez-le pour masquer la propriété en vue. P>
Le gars de ce blog explique comment utiliser ScaffoldColumn. Si vous êtes plus un gars visuel comme moi, vous aimerez le message. Il a des captures d'écran, une vidéo et tout. 20fingers2brains.blogspot.se/2013/03/...