Cela montre "Hello there" dans la zone de texte:
@model PlannerViewModel @{ ViewData["Title"] = "Test"; Layout = "~/Views/Shared/_Layout.cshtml"; } <h2>Test</h2> <form method="post"> <div class="border rounded"> <textarea class="form-control MyTextArea" rows="4" asp-for="EditShutdown.Comments_Operations">Hello there</textarea> </div> </form>
Cela n'affiche pas "Hello there" dans la zone de texte:
@model PlannerViewModel @{ ViewData["Title"] = "Test"; Layout = "~/Views/Shared/_Layout.cshtml"; } <h2>Test</h2> <form method="post"> <div class="border rounded"> <textarea class="form-control MyTextArea" rows="4">Hello there</textarea> </div> </form>
Comme vous le voyez, la seule différence est la présence de "asp-for". Est-ce que je fais quelque chose de mal? Y a-t-il une solution de contournement?
3 Réponses :
asp-for
donne à un
nom
et remplit sa valeur, vous pouvez donc simplement définir EditShutdown.Comments_Operations < / code> à
"Hello there"
pour l'afficher.
Salut #Alexander; ça ne marche pas. Même lorsque EditShutdown.Ccomments_Operations a déjà une valeur dessus, la
Selon votre demande, vous pouvez essayer d'utiliser l'attribut placeholder
comme ci-dessous:
<form method="post"> <div class="border rounded"> <textarea class="form-control MyTextArea" rows="4" placeholder="Hello there" asp-for="EditShutdown.Comments_Operations"></textarea> </div> </form>
Lorsque vous effectuez l'opération "Créer", vous pouvez voir le message d'invite "Hello there" ; et lorsque vous faites l'opération "Edit", vous pouvez voir la valeur de EditShutdown.Comments_Operations
.
Pour asp- pour l'attribut
, vous pouvez vous référer à:
https: // docs.microsoft.com/en-us/aspnet/core/mvc/views/tag-helpers/intro?view=aspnetcore-2.1
Xueli Chen: L'intention de "Placeholder" est de créer des filigranes, pas de remplir des cases avec des textes. Dans ce cas, je l'ai essayé et le texte "Hello there" apparaît mais disparaît immédiatement après avoir cliqué dessus, comme il est censé le faire - l'utilisateur n'est donc pas en mesure de modifier ce texte.
Quelle opération la zone de texte est-elle utilisée pour , Ajouter ou mettre à jour? Quel effet souhaitez-vous obtenir?
Pour résoudre cet événement ennuyeux, vous pouvez utiliser;
@ Html.IdFor
et
@ Html.NameFor
Example;
<textarea id="@Html.IdFor(m => m.EditShutdown.Comments_Operations)" name="@Html.NameFor(m => m.EditShutdown.Comments_Operations)">Hello there</textarea>
C'est en fait la seule réponse qui résout le problème sur .NET Core 3.1. Notez que les validations de modèle ne fonctionneront pas sans asp-for
, alors espérons que cela sera résolu sur .NET Core 5.0