我对编程很陌生。我将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);
}
问题是它不起作用,日期仍然为空
答案 0 :(得分:0)
您是否使用Post
的实例作为HttpPost
动作方法中的参数?也许模型绑定程序正在使用您指定的默认值创建对象的实例,然后分配null
。考虑在action方法中测试null。
[HttpPost]
public ActionResult MyMethod(Post post)
{
if (post.ReleaseDate == null)
{
post.ReleaseDate = DateTime.Now;
}
// other stuff
}