asp.net-mvc如何在 mvc4 文本框中删除默认的日期?

发布时间: 2016/10/9 2:49:56
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个文本框,如下图所示的 mvc4 应用程序中。

@Html.TextBoxFor(x=>x.dateofAction, ViewBag.filterdateTime as string,  new { @id = "dateofAction", @placeholder = "Date Of Action", @class = "txtBox form-control calender validate[required]" })

我为此文本框使用 jquery 日历。

 $(document).on('focus', '.calender', function(){
         $(this).datepicker({

             dateFormat: "dd/mm/yy",
             changeMonth: true,
             changeYear: true,
             showOn: 'button',
             buttonImage: '/images/icondate.png',
             buttonImageOnly: true
        })
            });

这是我的榜样

 [DisplayName("dateofAction")]
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
        public DateTime dateofAction { get; set; }

我面对问题时第一次页面加载默认日期 1/1/0001 12:00:00 AM 在文本框中显示。其实我想显示占位符值。

我可以知道为什么不能得到占位符值吗?

解决方法 1:

为了与占位符显示空的文本框,你需要让你的财产可以为 null。如果还想要的日期将被选择,然后你还可以装饰具有的属性 [Required] 属性。

此外注意到,你 [DisplayFormat] 是不必要,是由 ignoted TextBoxFor() 方法。您还应该使用 [Display] 属性,而不 [DisplayName] 你的财产应该是

[Display(Name= "Date of Action")]
[Required(ErrorMessage = "Please select a date")]
public DateTime? dateofAction { get; set; }

然后在视图中您的代码应该只是

@Html.TextBoxFor(x=>x.dateofAction, new { @placeholder = "Date Of Action", @class = "txtBox form-control calender validate[required]" })

和你的 datepicker 插件应该是初始化 DOM 呈现时,不是每一次集中

$('#dateofAction').datepicker({
    dateFormat: "dd/mm/yy",
    ....
})
官方微信
官方QQ群
31647020