web-dev-qa-db-fra.com

créer une zone de texte multiligne à l'aide de la fonction Html.Helper

J'essaie de créer une zone de texte multiligne à l'aide d'ASP.NET MVC avec le code suivant.

<%= Html.TextBox("Body", null, new { TextBoxMode = "MultiLine", Columns = "55px", Rows = "10px" })%>

Il affiche simplement une zone de texte de taille fixe simple ligne. 

d'autre part 

<asp:TextBox runat="server" ID="Body" TextMode="MultiLine" Columns="55" Rows="10"></asp:TextBox> 

affiche la vue de droite, mais dans la méthode post du contrôleur avec formCollection nommée form 

form["Body"]; 

renvoie une valeur nulle. 

49
paaone

Un champ de texte multiligne en HTML est <textarea>:

<%= Html.TextArea("Body", null, new { cols = "55", rows = "10" }) %>

ou:

<%= Html.TextArea("Body", null, 10, 55, null) %>

ou même mieux:

<%= Html.TextAreaFor(x => x.Body, 10, 55, null) %>

Une autre possibilité consiste à décorer votre propriété de modèle de vue avec l'attribut [DataType] :

[DataType(DataType.MultilineText)]
public string Body { get; set; }

et à votre avis:

<%= Html.EditorFor(x => x.Body) %>

et définir la largeur et la hauteur via CSS.

99
Darin Dimitrov

MVC4 vous devriez utiliser:

@Html.TextAreaFor(x => x.Body, 10, 15, null)
6
ahaliav fox

Cela permet de définir plusieurs lignes, de définir une largeur et une hauteur personnalisées, ainsi que de définir un espace réservé.

Syntaxe de Razor View

@Html.TextAreaFor(model => model.property, new { style = "width: 420px; height: 100px;", placeholder = "Placeholder here.." })
3
Shimax s

Je pense que le Html.EditorFor Est ce que vous cherchez. Ce n'est que pour MVC2 et plus cependant. Est ce que ça aide?

Si vous utilisez DataAnnotations et décorez votre propriété avec la [DataType(DataType.MultilineText)] Attribut, MVC devrait échafauder le code HTML requis pour vous.

0
MrBliz

Dans la couche d'entité:

[MaxLength(500)]
public string Body { get; set; }

Et en vue:

@Html.TextAreaFor(model => model.Body, new { rows = 10, cols = 50 })
0
Asif Iqbal

Solution VB.net:

@ Html.TextAreaFor (Fonction (Modèle) Model.Body, 3, 55, Nothing)

0
JoshYates1980