ASP.NET MVC 2 Html.TextArea не обновляется при редактировании - PullRequest
1 голос
/ 29 сентября 2010

У меня есть форма, которая позволяет пользователю вводить текст. Это будет длиннее, чем несколько символов, поэтому я хочу использовать TextArea вместо TextBox.

Html.TextBoxFor работает без проблем, а Html.TextAreaFor работает при создании записи, но не сохраняет новое значение при редактировании и показывает, какое значение было до того, как я его отредактировал после сохранения.

На странице:

    <div>
        <label>Work Performed:</label>
        <%: Html.TextAreaFor(model => model.WorkPerformed)%>
        <%: Html.ValidationMessageFor(model => model.WorkPerformed) %>
    </div>

Код для создания:

    maintPerformed.MaintDate = DateTime.Parse(Request.Form["MaintDate"]);
    maintPerformed.WorkPerformed = Request.Form["WorkPerformed"];
    maintPerformedRepository.Add(maintPerformed);
    maintPerformedRepository.Save();
    return RedirectToAction("Details", new { id = maintPerformed.ID });

Код для редактирования:

    maintPerformed.MaintDate = DateTime.Parse(Request.Form["MaintDate"]);
    maintPerformed.WorkPerformed = Request.Form["WorkPerformed"];
    maintPerformedRepository.Save();
    return RedirectToAction("Details", new { id = maintPerformed.ID });

Чего мне не хватает на стороне редактирования вещей?

1 Ответ

2 голосов
/ 29 сентября 2010

В обоих случаях вы перенаправляете на действие Details.Поэтому убедитесь, что maintPerformedRepository.Save() действительно что-то делает, и что самое важное в вашем Details действии, посмотрите, какое значение извлекается из хранилища данных.Я подозреваю, что либо база данных не обновлена, либо в вашем действии Details вы выбираете неправильное значение для вашей модели.

Примечание: вместо того, чтобы писать уродливые DateTime.Parse(Request.Form["MaintDate"]); и Request.Form["WorkPerformed"];, передавайте модель представленияв качестве аргумента для действия вашего контроллера и позволить связующему модели заполнить его из значений запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...