MVC3 Rasoir Html.TextBoxFor: puis-je faire en Multi-Ligne, comme TextAreaFor?

J'ai déjà vu ce post: Modification de la taille de Html.Zone de texte

Mais je ne peux pas changer de Html.TextAreaFor() parce qu'il ne dispose pas d'un attribut pour moi d'établir une dynamique de la valeur par défaut (je suis en train de modifier la page que je veux pour remplir dynamiquement dans les domaines de l'actuel des données qui peuvent ensuite être modifiés). Je ne peux pas sembler obtenir le EditorFor de travail, même si je change de [DataType(DataType.MultilineText)] dans mon viewmodel (tout ce qu'il fait, il semble changer de textboxfor et mes valeurs par défaut ne s'affichent pas).

Mon montage de vue, dans un viewmodel contenant deux modèles, un formulaire vide (OfferForm) à être remplis avec les champs à l'écran, et le offer modèle contenant les données actuelles. Je veux avoir des objets textfield pour la OfferForm, et de manière dynamique les remplir avec le contenu de la offer les données du modèle.

Voici mon code html:

<div class="InLine">
                    <div class="InLine editor-label-container">
                        <div class="editor-label">
                            @Html.LabelFor(model => model.OfferForm.Description)
                        </div>
                    </div>
                    <div class="InLine editor-field-container">
                        <div class="editor-field">
                            @Html.TextBoxFor(model => model.OfferForm.Description, new { @Value = @Html.DisplayFor(model => model.Offer.Description)})
                            @Html.ValidationMessageFor(model => model.Offer.Description)
                        </div>
                    </div>
                </div>
                <div class="InLine">
                    <div class="InLine editor-label-container">
                        <div class="editor-label">
                            @Html.LabelFor(model => model.OfferForm.SMSText)
                        </div>
                    </div>
                    <div class="InLine editor-field-container">
                        <div class="editor-field">
                            @Html.TextBoxFor(model => model.OfferForm.SMSText, new { @Value = @Html.DisplayFor(model => model.Offer.SmsText)})
                            @Html.ValidationMessageFor(model => model.Offer.SmsText)
                        </div>
                    </div>
                </div>

Est-il un moyen de définir un "multiline" attribut dans la Html.TextBoxFor()?

  • Pourquoi cherchez-vous à définir la value de la propriété. Dans le cas de la zone de texte de la value est ce qui est contenu dans les éléments html. Quant à vos exemples, vous n'avez pas besoin de définir la valeur de la propriété, soit la TextBoxFor ou la TextAreaFor que lorsque vous utilisez la Html.* helper il remplit automatiquement la valeur.
  • La raison j'ai besoin de régler le Value est parce que la valeur n'est pas renseignée à partir du Modèle pour lequel je suis à l'aide de TextBoxFor ou TextAreaFor (ie. le vide OfferForm). Au lieu de cela, il est rempli à partir d'un second Modèle dans mon ViewModel (ie. l'Offre).
  • Ah, je vois. très subtile différence d'appellation.
InformationsquelleAutor Evan Layman | 2011-07-19