【问题标题】:Specify a format for "asp-for" HTML Tag (ASP.NET Core)指定“asp-for”HTML 标记的格式 (ASP.NET Core)
【发布时间】:2017-12-25 02:41:55
【问题描述】:

在 ASP.NET Core 项目中,我必须以特定格式(例如“dd/mm/yyyy HH:MM”)显示(只读)日期

<div class="form-group">
    <label asp-for="Date" class="col-md-2 control-label"></label>
    <div class="col-md-10">
        <input asp-for="Date" readonly class="form-control" />
    </div>
</div>

知道Date字段是这样在模型中声明的,我该怎么办

public DateTime Date { get { return this.Timestamp.DateTime; } }

?

【问题讨论】:

    标签: c# asp.net-mvc asp.net-core asp.net-core-mvc asp.net-core-1.1


    【解决方案1】:

    试试这个。

    <input asp-for="Date" asp-format="{0:dd/MM/yyyy HH:mm}" readonly class="form-control" />
    

    【讨论】:

      【解决方案2】:

      或者,您可以使用DisplayFormatAttribute 来装饰属性。

      [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy HH:MM}")]
      public DateTime Date { get { return this.Timestamp.DateTime; } }
      

      您拥有的标记不需要更改。

      【讨论】:

      • 我试过这个,发现当底层数据类型不符合 DataFormatString 模式时会报错;即格式为 {dd/MM/yyyy},因为我的基础数据是带有 HH:MM 的 DateTime,所以我遇到了异常
      • @RichyRoo 您收到该错误是因为 MM 是月份,而不是分钟。
      【解决方案3】:

      如果它是只读的,你可以硬编码为 -

      <input value="@Model.Date.ToString("dd/MM/yyyy HH:mm")" readonly class="form-control" />
      

      或者显示为文本

      <div class="form-group">
          <label asp-for="Date" class="col-md-2 control-label"></label>
          <div class="col-md-10 form-control-static">
              @Model.Date.ToString("dd/MM/yyyy HH:mm")
          </div>
      </div>
      

      【讨论】:

        【解决方案4】:

        根据您的问题使用 ASP.Core TagHelpers;

        [DataType(DataType.Date)]
        public DateTime Date { get { return this.Timestamp.DateTime; } }
        

        将根据您的区域设置很好地格式化输入字段。 我还没有找到任何其他标签的标签助手解决方案,看起来像 Win 的回答中的硬编码

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-11-01
          • 1970-01-01
          • 1970-01-01
          • 2019-11-30
          • 2014-03-11
          • 1970-01-01
          • 2020-01-13
          相关资源
          最近更新 更多