У меня есть простое представление сведений, которое использует два оператора if, если пользователь является Customer
, оно отображает свойства клиента. Если пользователь Investor
, он отображает их свойства.
Моя проблема в том, что мое утверждение if работает для одного или другого, но не для обоих. Дайте мне:
NullReferenceException: ссылка на объект не установлена для экземпляра объекта
при попытке использовать оба оператора if.
Мой взгляд
@model MyProject.Models.ApplicationUser
<h3>
@Html.DisplayFor(m => Model.FirstName)
@Html.DisplayFor(m => Model.LastName)
</h3>
@if (Model.Customer.CustomerId != null)
{
<div class="form-group">
<strong>Tax ID:</strong>
@Html.DisplayFor(m => m.Customer.TaxId)
</div>
} else {
}
@if (Model.Investor.InvestorId != null)
{
<div class="form-group">
<strong>Social Security #:</strong>
@Html.DisplayFor(m => m.Investor.SsnNum)
</div>
<div class="form-group">
<strong>Date of birth:</strong>
@Html.DisplayFor(m => m.Investor.DOB)
</div>
} else {
}
Контроллер
public async Task<IActionResult> Details(string id)
{
if (id == null || id.Trim().Length == 0)
{
return NotFound();
}
var userFromDb = await _db.ApplicationUser.Include(u => u.Investor).Include(u => u.Customer).FirstOrDefaultAsync(i => i.Id == id);
if (userFromDb == null)
{
return NotFound();
}
return View(userFromDb);
}
Инвестор
public class Investor
{
[Key, ForeignKey("ApplicationUser")]
public string InvestorId { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
[Required]
[Display(Name = "SSN")]
public string SsnNum { get; set; }
[Display(Name = "Date of Birth")]
public DateTime DOB { get; set; }
}