【发布时间】:2013-07-19 12:02:53
【问题描述】:
问题是我想以“{0:dd/MM/yyyy}”格式将日期显示为只读或禁用,按照博客的解决方案我没有得到预期的结果,因为当我使用 DisplayFor 帮助器时适用于以正确的形式显示日期,但是当我发布时,日期的值更改为 {01/01/0001 12:00:00 a.m.},并收到下一个错误“将 datetime2 数据类型转换为 smalldatetime数据类型导致的值超出范围。语句已终止。"
我认为的代码:
<div class="editor-label">
@Html.LabelFor(model => model.F_Alta, "Fecha de alta:")
</div>
<div class="editor-field">
@Html.DisplayFor(model => model.F_Alta)
</div>
我的班级:
[MetadataType(typeof(AlmacenMetaData))]
public partial class Almacen
{
}
public class AlmacenMetaData
{
[Required(ErrorMessage = MensajesValidacionAlmacen.DescripcionRequerido)]
[StringLength(32, ErrorMessage = MensajesValidacionAlmacen.DescripcionLongitud)]
public object D_Almacen
{
get;
set;
}
[DisplayFormat(DataFormatString = Formatos.Fecha, ApplyFormatInEditMode = true)]
public object F_Alta
{
get;
set;
}
}
我的控制器中的代码:
[HttpPost]
public ActionResult Editar(Almacen almacen)
{
if (ModelState.IsValid)
{
db.Almacen.Attach(almacen);
db.ObjectStateManager.ChangeObjectState(almacen, EntityState.Modified);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(almacen);
}
有什么建议吗?谢谢!
【问题讨论】:
-
您为什么要对显示给用户的字段应用验证,而不是由用户输入?
-
你的控制器在做什么?
-
@user982511 从控制器粘贴一些代码。此外,
Date与{01/01/0001 12:00:00 a.m.}具有相同的格式,因此,哪一行会给您错误。可以贴一下吗? -
只接收一个 almacen 的实体,但总是接收修改为 01/01/0001 12:00:00 a.m. 的值
标签: asp.net-mvc