ASP.NET MVC 如何只显示月份和年份

Joh*_*ohn 2 c# asp.net asp.net-mvc date datepicker

我正在尝试显示月份和年份,而不是 dd/mm/yyyy。我的代码如下:

这是模型代码

[Display (Name = "ValidFrom")]
        [DataType(DataType.Date)]
        [DisplayFormat(DataFormatString = "{0:MMM-yyyy}" , ApplyFormatInEditMode = true)]
        public System.DateTime ValidFrom { get; set; }
Run Code Online (Sandbox Code Playgroud)

这是查看文件

<div class="form-group">
        @Html.LabelFor(model => model.ValidFrom, htmlAttributes: new { @class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.ValidFrom, new { htmlAttributes = new { @class = "form-control" } })
            @Html.ValidationMessageFor(model => model.ValidFrom, "", new { @class = "text-danger" })

        </div>
    </div>
Run Code Online (Sandbox Code Playgroud)

有没有办法只能让 mm/yyyy 出现?

Cyb*_*law 5

HTML5 支持月份类型。因此,以文本框为例,您可以这样做:

@Html.TextBoxFor(m => m.MonthYear, new { type = "month"})
Run Code Online (Sandbox Code Playgroud)

这将使用浏览器自己的月份选择器(在 Chrome、Firefox 和 Edge 上)。

实际上,这会创建以下 HTML:

<input id="MonthYear" name="MonthYear" type="month">
Run Code Online (Sandbox Code Playgroud)

默认情况下,HTML5 月份类型显示 MMMM yyyy(完整的月份名称和 4 个字符的年份),或者本地默认值(例如,在葡萄牙语中,它将显示“agosto de 2019”)。

默认值或模型值始终以“yyyy-MM”格式读取,因此无需担心不同语言的浏览器。

最后,数据位于 MVC 方面的 DateTime 中(因此,它会在 1/月/年 12:00:00 AM 出现),日期默认为 1(非常类似于小时、分钟和秒也设置为默认值)不使用时)。