• 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"})
  • 相关阅读:
    C++之类和对象
    PHP程序设计基础
    PHP函数和MySQL数据库
    HTML语言基础
    文件和目录1(文件属性和权限)
    文件IO
    查找
    使用tcpdump抓包实例
    导入模块的2种方法
    ansible启用sudo执行命令
  • 原文地址:https://www.cnblogs.com/darrenji/p/3775585.html
Copyright © 2020-2023  润新知