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)