질문을 표현하는 방법을 잘 모릅니다. hiddenFor 필드를 사용하여 html.display에 날짜를 표시하거나 편집하지 않고 해당 필드와 비슷한 날짜에 database에 record_time을 저장하려고합니다. 보기에 데이터를 올바르게 표시하고 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);
}
CREATE보기 USER_ID 정보
<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)를 작성. editFor가 아닌 새 레코드에 대해 hiddenFor를 사용하는 것이 맞습니까?
2) record_time에 관하여. hiddenFor 및 displayFor를 모두 사용하는 것이 맞습니까? 어느 것이 데이터를 다시 데이터베이스로 보내는 데 사용됩니까? 미리 정의 된 datetime 정보를 표시하고 데이터베이스에 보내려면 올바른 방법은 무엇입니까?
양식 컨트롤 만 값을 게시합니다 ('DisplayFor()'는 양식 컨트롤을 만들지 않습니다). 그러나 당신은'record_time'을위한 폼 컨트롤을 가지고 있으면 안됩니다 - 여러분은 데이터를 저장하기 전에 컨트롤러에 설정 만하면됩니다. 'user_id'에 관해서 - 편집하고 싶지 않다면 숨겨진 입력이되어야합니다. –
@StephenMuecke, 고마워요. HttpPost 액션에서 그것을 저장하는 훌륭한 조언. 나는 그것을 적절히 수정했으며 지금은 완벽합니다. – SWA