mvc 3 attributs html
j'ai été jouer avec MVC. Actuellement, je suis perplexe sur le langage html helper. Une chose que j'ai remarqué, c'est que je ne peux pas vraiment cant appliquer la ASP.NET Web Formulaire de logique dans MVC. Pour expliquer plus loin, dans ASP.NET je pourrais créer une Étiquette de contrôle et de l'affecter certaines données de texte, puis lire les données de texte.
Cependant, MVC, je ne peux pas semblent faire la même chose avec @Html.LabelFor/@Html.Label, j'ai réalisé qu'une fois que vous faites un POST de votre formulaire, la valeur de l'Étiquette n'est pas lié à mon modèle de vue. Cependant, si j'utilise un EditorFor ou TextBoxFor, je peux obtenir les valeurs liées à mon viewmodel sur le POST.
Ma question ce que html hlper méthode dois-je utiliser pour l'affichage du texte en readonly, mais encore être en mesure de lier à mon viewmodel à la poste ? J'ai essayé TextBoxFor avec ses attributs html désactivé et readonly mais pas de chance.
Apprécier tous les pointeurs.
grâce
- comment êtes-vous essayer de lier cet attribut?
- merci pour les réponses. ma liaison dans mon balisage est que: @html.Étiquette De Modèle.Nom d'utilisateur). essentiellement sur le POST, j'ai une méthode d'action publique en Vue FormPost(MyViewModel vm). J'ai simplement extraire le contenu de la variable "vm" et le coller à l'intérieur d'une méthode de service.
Vous devez vous connecter pour publier un commentaire.
Vous devriez être en mesure de lier la
readonly
attribut à laTextBox
en passanthtmlAttributes
que le 2ème paramètre de laTextBoxFor
méthode:Sur MSDN: InputExtensions.TextBoxFor Méthode (HtmlHelper, Expression>, Objet)
Si vous êtes en essayant de maintenir la valeur de l'Étiquette, vous pouvez utiliser une combinaison de la
LabelFor
etHiddenFor
méthodes.Je ne sais pas pourquoi vous auriez besoin de faire cela, car vous devriez être en mesure d'obtenir le Texte de l'attribut ou le Nom de la Propriété de la propriété.
mais cela ne fait pas beaucoup de sens étant donné que la syntaxe habituelle serait:
Notez que si vous utilisez le
disabled
attribut de l'entrée ne sera pas affiché lorsque le formulaire est soumisHtml.EditorFor()
méthode si vous avez besoin de spécifier HTMLAttributes, vous devez utiliser quelque chose commeTextBoxFor()
,DropDownListFor()
, etc. Je ne le savais pas, jusqu'à ce que je regarde de plus près mes appels à la méthode que j'appelle le faux pour permettre HtmlAttributes à être transmise.Ce comportement est normal, seules les valeurs des éléments de formulaire sont ajoutés à votre Modèle sur le POST de sorte que votre étiquette sera ignoré. Pour obtenir autour de cette double votre étiquette de valeur dans un champ caché
ou