Asp.net mvc ASP.NET MVC-在ViewModel中连接日期

Asp.net mvc ASP.NET MVC-在ViewModel中连接日期,asp.net-mvc,Asp.net Mvc,我正在从事ASP.NETMVC5中的一个项目。我有一个模型 public class AcademicYearListViewModel { public Guid Id { get; set; } [Display(Name = "Academic Year")] public int StartYear { get { return this.StartDate.Year; } } public int EndY

我正在从事ASP.NETMVC5中的一个项目。我有一个模型

    public class AcademicYearListViewModel
{
    public Guid Id { get; set; }

    [Display(Name = "Academic Year")]
    public int StartYear 
    {
        get { return this.StartDate.Year; } 
    }

    public int EndYear
    {
        get { return this.EndDate.Year; }
    }

    [Display(Name = "Start date")]
    [DisplayFormat(DataFormatString = "{0:d}")]
    public DateTime StartDate { get; set; }

    [Display(Name = "End date")]
    [DisplayFormat(DataFormatString = "{0:d}")]
    public DateTime EndDate { get; set; }

    [Display(Name = "Active")]
    public bool IsActive { get; set; }
}

在ViewModel中,我想从StartDate和EndDate中提取年份。然后连接结果并用反斜杠将它们分开。结果应该是字符串,如下所示:2008/2009

您可以添加另一个只读属性,这样可以完成此任务

[Display(Name = "End date")]
[DisplayFormat(DataFormatString = "{0:d}")]
public DateTime EndDate { get; set; }
[Display(Name = "Start date")]
[DisplayFormat(DataFormatString = "{0:d}")]
public DateTime StartDate { get; set; }

[Display(Name = "concanate")]

public string dateTime { get {
        return StartDate.Year + "/" + EndDate.Year;
    } }

您可以创建一个getter-only属性,并使用字符串连接对其进行赋值,如下示例所示:

1)使用标准连接

public string ConcatDate
{
    get
    {
        return StartDate.Year + "/" + EndDate.Year;
    }
}

public string ConcatDate
{
    get
    {
        return StartYear + "/" + EndYear;
    }
}
2)使用
string.Format()

public string ConcatDate
{
    get
    {
        return string.Format("{0}/{1}", StartDate.Year, EndDate.Year);
    }
}
3)使用字符串插值(C#6+)

演示示例:

public string ConcatDate
{
    get
    {
        return $"{StartYear}/{EndYear}";
    }
}