首页 > 代码库 > MVC日期格式化的2种方式
MVC日期格式化的2种方式
假设有这样的一个类,包含DateTime类型属性,在编辑的时候,如何使JoinTime显示成我们期望的格式呢?
using System; using System.ComponentModel.DataAnnotations; namespace MvcApplication1.Models { public class Employee { public DateTime? JoinTime { get; set; } } }
在HomeController中:
using System; using System.Web.Mvc; using MvcApplication1.Models; namespace MvcApplication1.Controllers { public class HomeController : Controller { public ActionResult Index() { return View(new Employee(){JoinTime = DateTime.Now}); } } }
在Home/Index.cshtml强类型视图中:
@model MvcApplication1.Models.Employee @{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_Layout.cshtml"; } <h2>Index</h2> @Html.EditorFor(model => model.JoinTime)
方式1:通过编码
在Views/Shared/EditorTemplates下创建DateTime.cshtml强类型部分视图,通过ToString()格式化:
@model DateTime? @Html.TextBox("", Model.HasValue ? Model.Value.ToString("yyyy-MM-dd") : "", new {@class = "date"})
方式2:通过ViewData.TemplateInfo.FormattedModelValue
当我们把 [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}"...]属性打在DateTime类型属性上的时候,我们可以在视图页通过ViewData.TemplateInfo.FormattedModelValue获取该类型属性格式化的显示。
using System; using System.ComponentModel.DataAnnotations; namespace MvcApplication1.Models { public class Employee { [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] public DateTime? JoinTime { get; set; } } }
在Views/Shared/EditorTemplates下创建DateTime.cshtml强类型部分视图,通过ViewData.TemplateInfo.FormattedModelValue格式化日期类型的属性。
@model DateTime? @Html.TextBox("", Model.HasValue ? @ViewData.TemplateInfo.FormattedModelValue : "", new {@class="date"})
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。