ASP.NET MVC格式化日期

假设有这样的一个类,包含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"})

到此这篇关于ASP.NET MVC格式化日期的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • asp.net页面中时间格式化的示例

    asp.net页面将Eval中的时间显示为"yyyy-MM-dd"格式 复制代码 代码如下: <table>  <tr>    <td style="width:273px;color:#105db5;" valign="top">[**平台]  <a href="javascript:void(0)" style="color:#6c6c72" title='&l

  • Json.net日期格式化设置方式

    Json.net默认的时间格式化后带T,不符合一般的业务要求,重新设置JSON.NET的默认日期格式化方式,代码如下: /// <summary> /// Json.net默认转换设置 /// </summary> private static void DefaultJsonConvertSetting() { JsonSerializerSettings setting = new JsonSerializerSettings(); JsonConvert.DefaultSet

  • ASP.NET GridView控件在列上格式化时间及DataFormatString使用

    症状:在GridView绑定日期格式的时候,数据库中的日期为2008-07-04,而GridView显示的是2007-07-04 000000.. 解决办法:想把这后面这多余的零去掉的话在绑定时间的那一列源码后面加上一句话就可以了,如下红色的部分 复制代码 代码如下: <asp:BoundField DataField="BeginDate" HeaderText="开始时间" DataFormatString="{0:d}" htmlen

  • Asp.net中时间格式化的6种方法详细总结

    1. 数据控件绑定时格式化日期方法: 复制代码 代码如下: <asp:BoundColumn DataField="AddTime" HeaderText="添加时间" DataFormatString="{0:yyyy-MM-dd HH:mm}></asp:BoundColumn> <asp:BoundField DataField="AddTime" HeaderText="添加时间"

  • C#.net格式化时间字符串达到不同的显示效果

    有时候我们要对时间进行转换,达到不同的显示效果 默认格式为:2005-6-6 14:33:34 如果要换成成200506,06-2005,2005-6-6或更多的该怎么办呢 我们要用到:DateTime.ToString的方法(String, IFormatProvider) using System; using System.Globalization; String format="D"; DateTime date=DataTime,Now; Response.Write(da

  • 基于.Net中的数字与日期格式化规则助记词的使用详解

    格式化可以通过string.Format方法或者直接使用xx.ToString("")方法执行.格式化的规则不太好记,本文通过简单的词话,可以帮你记忆这些规则 1. 数字格式化规则很简单都是一个字母表示格式化的种类后面可以可选的跟一个数字表示要保留的小数位数.字母就那么几个:C.D.E.F.G.N.P.R.X 大小写是通用的 2. DateTime格式化 2013-05-18 13:09:24.211 +8:00 年份是y:一y年份个位yy年份后两位yyy年份后三位yyyy四位年份yy

  • ASP.NET MVC格式化日期

    假设有这样的一个类,包含DateTime类型属性,在编辑的时候,如何使JoinTime显示成我们期望的格式呢? using System; using System.ComponentModel.DataAnnotations; namespace MvcApplication1.Models { public class Employee { public DateTime? JoinTime { get; set; } } } 在HomeController中: using System;

  • ASP.NET MVC使用RazorEngine解析模板生成静态页

    简述 Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项.在早期的MVC版本中默认使用的是ASPX模板引擎,Razor在语法上的确不错,用起来非常方便,简洁的语法与.NET Framework 结合,广泛应用于ASP.NET MVC 项目. 我们在很多项目开发中会常常用到页面静态化,页面静态化有许多方式,最常见的就是类似很多PHP CMS种使用的 标签替换的方式(如:帝国CMS.EcShop等),还有很多都是伪静态,伪静态我们就不做过多解释,通过路由或Url

  • 详解ASP.NET MVC 解析模板生成静态页(RazorEngine)

    简述 Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项.在早期的MVC版本中默认使用的是ASPX模板引擎,Razor在语法上的确不错,用起来非常方便,简洁的语法与.NET Framework 结合,广泛应用于ASP.NET MVC 项目. 我们在很多项目开发中会常常用到页面静态化,页面静态化有许多方式,最常见的就是类似很多PHP CMS种使用的 标签替换的方式(如:帝国CMS.EcShop等),还有很多都是伪静态,伪静态我们就不做过多解释,通过路由或Url

  • ASP.NET MVC自定义异常过滤器使用案例

    目录 一.需求 二.案例 1.创建工具类 1.1.创建日志工具类 1.2.创建网络工具类 2.创建自定义异常类 3.创建控制器 4.测试 在上一篇文章中讲解了自定义异常过滤器,这篇文章会结合工作中的真实案例讲解一下如何使用自定义异常过滤器. 一.需求 本案例要实现的功能需求:在发生异常时记录日志,日志内容包括发生异常的Controller名称.Action名称.使用浏览器类型和版本等. 二.案例 1.创建工具类 首先创建项目中需要使用的工具类. 1.1.创建日志工具类 在案例中使用Log4net

  • Asp.net MVC中Razor常见的问题与解决方法总结

    前言 最近在学习Asp.net MVC Razor,在使用中遇到了不少的问题,所以想着总结下来,没有经验的童鞋就是这样磕磕碰碰出来的经验.话不多说,来一起看看详细的介绍: 一.Datatype的错误提示消息无法自定义 这也许是Asp.net MVC的一个Bug.ViewModel中定义了DataType为Date字段: [Required(ErrorMessage = "Birthday must be input!")] [DataType(DataType.Date, ErrorM

  • 利用ASP.NET MVC和Bootstrap快速搭建个人博客之后台dataTable数据列表

    jQuery dataTables 插件是一个优秀的表格插件,是后台工程师的福音!它提供了针对数据表格的排序.浏览器分页.服务器分页.查询.格式化等功能.dataTables 官网也提供了大量的演示和详细的文档进行说明,为了方便使用,这里进行详细说明. 去官网:https://www.datatables.net/ 下载最新版本是v1.10.12. 在页面引入: <link rel="stylesheet" href="~/Content_Admin/css/boots

  • 浅谈Asp.net Mvc之Action如何传多个参数的方法

    最近,工作上有一个需要:用户查询日志文件信息,查看某一个具体日志信息,可能同时查看该日志所在日期的其他日志信息列表. 为完成此功能,我打算在URL中传入了两个参数,一个记录此日志时间,另外一个记录日志的主键ID,因此,准备从Asp.net MVC的路由入手. 在Global.asax文件中,默认路由如下. routes.MapRoute( "Default", // 路由名称 "{controller}/{action}/{id}", // 带有参数的 URL ne

  • 详解ASP.NET MVC 常用扩展点:过滤器、模型绑定

    一.过滤器(Filter) ASP.NET MVC中的每一个请求,都会分配给对应Controller(以下简称"控制器")下的特定Action(以下简称"方法")处理,正常情况下直接在方法里写代码就可以了,但是如果想在方法执行之前或者之后处理一些逻辑,这里就需要用到过滤器. 常用的过滤器有三个:Authorize(授权过滤器),HandleError(异常过滤器),ActionFilter(自定义过滤器),对应的类分别是:AuthorizeAttribute.Han

  • 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法

    问题背景: 在使用asp.net mvc 结合jquery esayui做一个系统,但是在使用使用this.json方法直接返回一个json对象,在列表中显示时发现datetime类型的数据在转为字符串是它默认转为Date(84923838332223)的格式,在经过查资料发现使用前端来解决这个问题的方法不少,但是我又发现在使用jquery easyui时,加载列表数据又不能对数据进行拦截,进行数据格式转换之后再加载,后来发现可以通过自定义JsonResult实现,认为这种方法比较可行,就开始研

  • Spring MVC自定义日期类型转换器实例详解

    Spring MVC自定义日期类型转换器实例详解 WEB层采用Spring MVC框架,将查询到的数据传递给APP端或客户端,这没啥,但是坑的是实体类中有日期类型的属性,但是你必须提前格式化好之后返回给它们.说真的,以前真没这样做过,之前都是一口气查询到数据,然后在jsp页面上格式化,最后展示给用户.但是这次不同,这次我纯属操作数据,没有页面.直接从数据库拿数据给它们返数据.它们给我传数据我持久化数据,说到这里一个小问题就默默的来了. 首先把问题还原一下吧(这是一个数据导出功能),下图中用红框圈

随机推荐