В этом фрагменте кода ваша переменная customer может иметь значение null:
var customer = _context.Customers.FirstOrDefault(c => c.Id == id);
В этом фрагменте кода вы присваиваете эту переменную своей модели. Клиент:
var viewModel = new CustomerViewModel()
{
Customer = customer,
В этом фрагменте кода вы используете модель. Клиент, как будто вы уверены, что он не равен нулю:
@Html.LabelFor(m => m.Customer.Gender)
Из многих других возможностей это наиболее очевидный нуль-рефлекс, который я могу найти,Чтобы исправить это, вы можете сделать что-то вроде этого:
var viewModel = new CustomerViewModel()
{
Customer = customer ?? new Customer(),
или это:
var customer = _context.Customers.FirstOrDefault(c => c.Id == id);
if (customer == null) {
return view("CustomerNotFound"); //or some other way to display your error
}