自定义EditForTemplate

最近想将MVC中Model中的DateTime能够显示出来,但是默认的EditFor中type为datetime,google chrome不支持该时间格式,于是想自定义将其改成type="date"格式,并且更改DateTime的value的格式为"yyyy-MM-dd",这样在浏览器中才能显示出来,默认的格式为"yyyy/MM/dd",浏览器不支持该格式。同时也不想利用datetimepicker实现,就想到了利用EditForTemplate实现。具体步骤如下:

在View->Shared中新建一个文件夹EditorTemplates。定义一个"_DateTime.cshtml"

输入:

@model DateTime
    @{ 
        var name = ViewData.TemplateInfo.HtmlFieldPrefix;
        var classString = "text-box single-line form-control" ;
        var valueFormate = Model.ToString("yyyy-MM-dd");

    }


Model中的定义:

public class Device{
 [UIHint("_DateTime")]
        [Display(Name = "上次计量时间")]
        public virtual DateTime? PreviousMeasureTime { get; set; }
}


不足之处:无法解析@Html.EditFor()中的htmlAttributes。

学习点:发现如何要获得Model中PreviousMeasureTime的名称,需要用

var name = ViewData.TemplateInfo.HtmlFieldPrefix;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值