1

我是一名专业知识分子,所以如果遇到愚蠢的问题,请原谅我的问题,我在以下网址创建了一个小型 Web 应用程序https://wireme.co.uk/BookList但我无法正确显示日期,不知道是什么我做错了,请参阅下面的代码:

using Microsoft.VisualBasic;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;


    namespace BookListRazor.Model
    {
        public class Book
        {
            [Key]
            public int PO { get; set; }
            [Required]
            public string Creator { get; set; }
            [Required]
            public string Company { get; set; }
    
            [DataType(DataType.Date)]
            [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy")]
            public DateTime Date { get { return Mydate; } set { Mydate = value; } }
    
            [DataType(DataType.Date)]
            [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy")]
    
            public DateTime Mydate = DateAndTime.Now;
            [DataType(DataType.Date)]
            [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy")]
            public DateTime MyDate { get; set; }
            
    
    
    
        }
    
    
    }
4

1 回答 1

2

您可以使用字符串来显示它:

[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public string MyDate { get; set; }

您可以使用Book 的类构造函数将 DateTime 转换为字符串:

     public Book()
      {
        this.MyDate = Mydate.ToString();
      }

只要您使用 c# 声明,我也会将 DateAndTime 更改为 DateTime :

    public DateTime Mydate = DateTime.Now;

或者

我要做的是减少属性的数量。如果我正确理解您想要达到的目标,这应该足够了:

        public class Book
        {
            [Key]
            public int PO { get; set; }
            [Required]
            public string Creator { get; set; }
            [Required]
            public string Company { get; set; }
            [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
            public string MyDate { get { return DateTime.Now.ToString(); } set { } }

        }
于 2020-08-04T11:52:16.470 回答