問題是,我希望以「{0:dd/MM/yyyy}」格式顯示日期爲只讀或禁用,遵循博客的解決方案沒有得到預期的結果,因爲當我使用DisplayFor幫助程序工作以正確的形式顯示日期,但是當我執行該帖子時,日期的值更改爲{01/01/0001 12:00:00 am},並接收下一個錯誤「將datetime2數據類型轉換爲smalldatetime數據類型導致超出範圍的值,該語句已終止。」ASP.NET MVC顯示日期的格式爲dd/MM/yyyy
代碼在我看來:
<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);
}
任何建議?謝謝!
爲什麼要將驗證應用於顯示*到用戶的字段,而不是由用戶輸入* – anaximander
你的控制器在做什麼? – AntLaC
@ user982511從控制器粘貼一些代碼。另外,'Date'與'{01/01/0001 12:00:00 a.m.}'具有相同的格式,因此,哪一行會給出錯誤。你能粘貼它嗎? –