Не знаете, как лучше выразить вопрос. Я хочу использовать поле hiddenFor, чтобы сохранить record_time в базе данных, показывая дату в html.display или аналогично этому полю без редактирования.Правильно отображать данные в режиме просмотра и сохранять их с помощью HiddenFor и DisplayFor
Создать действие
public ActionResult Create()
{
Record newRecord = new Record();
newRecord.user_id = 1; //let it be 1 for simplicity
newRecord.record_time = System.DateTime.Now;
return View(newRecord);
}
Создать вид
<div class="form-group">
@Html.LabelFor(model => model.user_id, "User name", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.HiddenFor(model => model.user_id)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.record_time, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.HiddenFor(model => model.record_time)
//this line I'm concerned about
@Html.DisplayFor(model => model.record_time, new { htmlAttributes = new { @class = "form-control" } })
</div>
</div>
ВОПРОСЫ
1) О user_id. Правильно ли использовать hiddenFor для новой записи, а не для редактора?
2) О record_time. Правильно ли использовать как скрытые, так и displayFor? какой из них будет использоваться для отправки данных обратно в базу данных? Каков правильный способ просто отобразить предопределенную информацию о времени и отправке в базу данных?
Только элементы управления формой после возврата значения ('DisplayFor()' не создает элемент управления формой). Но вы не должны иметь контроль формы вообще для 'record_time' - вы просто устанавливаете контроллер, прежде чем сохранять данные. Что касается 'user_id' - если вы не хотите его редактировать, то это должен быть скрытый ввод –
@StephenMuecke, спасибо большое. Большой совет, чтобы сохранить его в действии HttpPost. Я исправил соответственно, и теперь он совершенен. – SWA