ASP.NET MVC - объединение дат во ViewModel - PullRequest
0 голосов
/ 25 октября 2018

Я работаю над проектом в ASP.NET MVC 5. У меня есть ViewModel

    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.

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Вы можете создать свойство только для получения и назначить его с конкатенацией строк, как показано в следующих примерах:

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}";
    }
}

Демонстрационный пример: .NET Fiddle

0 голосов
/ 25 октября 2018

Вы можете добавить другое свойство только для чтения, это сделает работу

[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;
    } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...