我想硬编码DateTime.Now (在前端)创建新记录时。但是我不想看到这些字段,因为它们不需要输入。使用下面列出的代码,我将“对象引用设置为未设置为对象的实例。”
控制器:
[HttpPost]
public ActionResult Create(tbl_one tbl_one)
{
if (ModelState.IsValid)
{
db.tbl_one.Add(tbl_one);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(tbl_one);
}
模型:
public System.DateTime Created { get; set; }
查看:
<div class="editor-field">
@Html.HiddenFor(model => model.Created, Model.Created = DateTime.Now)
@Html.ValidationMessageFor(model => model.Created)
</div>
答案 0 :(得分:2)
部分归功于:MVC3 HTMLHelper defaults
修正:
@Html.HiddenFor(model => model.Created, new { @Value = System.DateTime.Now })
答案 1 :(得分:0)
由于尚未设置模型对象,因此在返回GET请求的创建视图时需要对其进行实例化:
[HttpGet]
public ActionResult Create(tbl_one tbl_one)
{
return View(new tbl_one());
}
答案 2 :(得分:0)
说实话,你可能不应该在前端做这件事。如果您使用类似DateTime.Now
的硬编码值在前端创建一个隐藏字段,您仍然需要在后端检查它,以确保有人不会向您发送错误值作为安全预防措施。我建议只需在后端设置它,这样你只需要担心一次。