Не удается установить текст по умолчанию для @ Html.TextAreaFor? - PullRequest
1 голос
/ 15 ноября 2011

Я не могу установить текст по умолчанию для @HTML.TextAreaFor

Это все, что я пробовал, но не сработало, всегда отображается пустая область текста

@Html.TextAreaFor(m => m.EmployeeDescription, new {  @Text = ViewBag.Model.EmployeeDescription })

@Html.TextAreaFor(m => m.EmployeeDescription, new {  @text = ViewBag.Model.EmployeeDescription })

@Html.TextAreaFor(m => m.EmployeeDescription, new {  @Value = ViewBag.Model.EmployeeDescription })

@Html.TextAreaFor(m => m.EmployeeDescription, new {  @value = ViewBag.Model.EmployeeDescription })

Точно так же работает для @Html.TextBoxFor с @Value, но не с TextArea: (

Может кто-нибудь помочь ...

Ответы [ 3 ]

3 голосов
/ 15 ноября 2011

Вы должны установить текст на модели, прежде чем передать его в представление. Это верно и для TextBoxFor. Вам не нужно устанавливать значение, используя атрибуты HTML. Обратите внимание, что текстовое поле не имеет атрибутов text или value, его значение при первоначальной визуализации является HTML-кодом между открывающим и закрывающим тегами.

1 голос
/ 15 ноября 2011

Нашел ответ, я совершил глупую ошибку

Теперь я заменил свой метод индекса на этот

    public ActionResult Index(Guid empId)
    {
        ViewBag.Model = new EditEmployeePopulator(session, empId).GetModel();
        return View();
    }

К этому

    public ActionResult Index(Guid empId)
    {
        return View(new EditEmpoyeePopulator(session, empId).GetModel());
    }

И это сработало!

Раньше я делал это неправильно. Я назначал свою модель как свойство ViewBag и обращался к ней через ViewBag только в моем представлении, и это была моя ошибка.

Когда я заменил свой код, он начал работать только с этим

@Html.TextAreaFor(m => m.EmployeeDescription)

:):)

Спасибо за все ответы

0 голосов
/ 15 ноября 2011

Извините, это естественно для элемента TextArea самого HTML, потому что если вы видите источник представления, вы найдете значение или текст, но для HTML это не влияет на TextArea, поэтому для добавления значения по умолчанию вам нужно поместить текст внутри самого тега TextArea

, поэтому вы можете просто инициализировать объект при создании со значением по умолчанию следующим образом:

Employee e = new Employee { Id = 1, EmployeeDescription = "Default Value" };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...