web-dev-qa-db-fra.com

ASP.NET MVC3 - textarea avec @ Html.EditorFor

J'ai ASP.NET MVC3 app et j'ai aussi forme pour ajouter des nouvelles. Lorsque VS2010 a créé la vue par défaut, je n'ai que des entrées de texte pour les données de chaîne, mais je souhaite disposer de textarea pour le texte d'actualités. Comment je peux le faire avec la syntaxe Razor.

La saisie de texte ressemble à ceci:

@Html.EditorFor(model => model.Text)
205
Jacob Jedryszek

Vous pouvez utiliser l'attribut [DataType] sur votre modèle de vue comme ceci:

_public class MyViewModel
{
    [DataType(DataType.MultilineText)]
    public string Text { get; set; }
}
_

et alors vous pourriez avoir un contrôleur:

_public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new MyViewModel());
    }
}
_

et une vue qui fait ce que vous voulez:

_@model AppName.Models.MyViewModel
@using (Html.BeginForm())
{
    @Html.EditorFor(x => x.Text)
    <input type="submit" value="OK" />
}
_
369
Darin Dimitrov

Quelqu'un a posé une question sur l'ajout d'attributs (en particulier "lignes" et "colonnes"). Si vous utilisez Razor, vous pouvez simplement faire ceci:

@Html.TextAreaFor(model => model.Text, new { cols = 35, @rows = 3 })

Ça marche pour moi. Le '@' est utilisé pour échapper des mots-clés afin qu'ils soient traités comme des variables/propriétés.

134
Tyson Phalp
@Html.TextAreaFor(model => model.Text)
95
addy