ASP.NET MVC3 - textarea с @Html.EditorFor

У меня есть приложение ASP.NET MVC3, и у меня также есть форма для добавления новостей. Когда VS2010 создал представление по умолчанию, у меня есть только текстовые входы для строковых данных, но я хочу иметь текстовое поле для текста новостей. Как я могу это сделать с синтаксисом Razor.

Текстовый ввод выглядит следующим образом:

@Html.EditorFor(model => model.Text)

Ответ 1

Вы можете использовать атрибут [DataType] в вашей модели представлений следующим образом:

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

а затем вы можете иметь контроллер:

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

и представление, которое делает то, что вы хотите:

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

Ответ 2

Кто-то спросил о добавлении атрибутов (в частности, "rows" и "cols" ). Если вы используете Razor, вы можете просто сделать это:

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

Это работает для меня. "@" Используется для исключения ключевых слов, поэтому они рассматриваются как переменные/свойства.

Ответ 3

@Html.TextAreaFor(model => model.Text)