Как использовать сегодняшнюю дату, если DateTime равен нулю? - PullRequest
0 голосов
/ 21 мая 2019

Я довольно новичок в программировании. Я использую ASP.NET Core 3.0 с MVC. Я хочу получить, что если пользователь не вводит дату, тогда дата установлена ​​сегодня

Я попытался сделать оператор if в конструкторе модели и установить текущее время в качестве значения по умолчанию

public class Post
{
    [DataType(DataType.DateTime)]
    public DateTime? ReleaseDate { get; set; } = DateTime.Now;

    public Post()
    {
        if (ReleaseDate == null)
        {
            ReleaseDate = DateTime.Now;
        }
    }
}

Вот метод Create в контроллере

public async Task<IActionResult> Create([Bind("Id,Title,Author,ReleaseDate,ExpirationDate,Content")] Post post)
        {
            if (ModelState.IsValid)
            {
                _context.Add(post);
                await _context.SaveChangesAsync();
                return RedirectToAction(nameof(Index));
            }
            return View(post);
        }

Проблема в том, что это не работает, в любом случае дата равна нулю

1 Ответ

0 голосов
/ 22 мая 2019

Используете ли вы экземпляр Post в качестве параметра в HttpPost методе действия? Возможно, механизм связывания создает экземпляр объекта с указанным вами значением по умолчанию, но затем присваивает null. Рассмотрите возможность проверки на null в методе action.

[HttpPost]
public ActionResult MyMethod(Post post)
{
    if (post.ReleaseDate == null)
    {
        post.ReleaseDate = DateTime.Now;
    }

    // other stuff
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...