I have been following the microsoft tutorial code first razor pages to create an sql database project. I want to display the created date and the updated date on my 'people' index page.
My model:
public class People
{
public int ID { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime UpdatedAt { get; set; }
public Ctype Ctype { get; set; }
[Required]
[StringLength(50, ErrorMessage = "First name cannot be longer than 50 characters.")]
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Required]
[StringLength(50)]
[Display(Name = "Last Name")]
public string LastName { get; set; }
}
My context
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Demographic>().ToTable("Demogrphic");
modelBuilder.Entity<Address>().ToTable("Address");
modelBuilder.Entity<People>().ToTable("People")
.Property(e => e.CreatedAt)
.HasDefaultValueSql("GETDATE()");
modelBuilder.Entity<People>().ToTable("People")
.Property(e => e.UpdatedAt)
.HasDefaultValueSql("GETDATE()");
}
When it comes to the view I'm at a loss - I've read posts about overriding the save do I replace the async or am I supposed to slot it in somewhere here?
namespace Ceso.Pages.Peoples
{
public class EditModel : PageModel
{
private readonly Ceso.Data.CesoContext _context;
public EditModel(Ceso.Data.CesoContext context)
{
_context = context;
}
[BindProperty]
public People People { get; set; } = default!;
public DateTime UpdatedAt { get; set; }
public async Task<IActionResult> OnGetAsync(int? id)
{
if (id == null || _context.People == null)
{
return NotFound();
}
var people = await _context.People.FirstOrDefaultAsync(m => m.ID == id);
if (people == null)
{
return NotFound();
}
People = people;
return Page();
}
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
_context.Attach(People).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!PeopleExists(People.ID))
{
return NotFound();
}
else
{
throw;
}
}
return RedirectToPage("./Index");
}
private bool PeopleExists(int id)
{
return (_context.People?.Any(e => e.ID == id)).GetValueOrDefault();
}
}
}