Итак, я пытаюсь получить доступ к странице localhost / Catalog / Detail / {id}, но Visual Studio сообщает мне мой id = 0, когда я пытаюсь получить доступ, например, localhost / Catalog / Detail / 1
какая причина, почему это происходит? Ниже представлен Контроллер для Представления.
public IActionResult Detail(int id)
{
var asset = _assets.GetById(id);
var model = new AssetDetailModel
{
AssetId = id,
Title = asset.Title,
Year = asset.Year,
Cost = asset.Cost,
Status = asset.Status.Name,
ImageUrl = asset.ImageUrl,
AuthorOrDirector = _assets.GetAuthorOrDirector(id),
CurrentLocation = _assets.GetCurrentLocation(id).Name,
DeweyCallNumber = _assets.GetDeweyIndex(id),
ISBN = _assets.GetIsbn(id)
};
return View(model);
}
Я получаю сообщение об ошибке, как показано ниже (из-за того, что я использую FirstOrDefault для его извлечения, но, как показывает Visual Studio, значение, которое он получает для int id, равно id = 0, поэтому он получит значение по умолчанию значение, которое является нулевым)
System.NullReferenceException: 'Object reference not set to an instance of an object.'
asset was null.
На всякий случай, если кто-нибудь спросит
мой шаблон маршрутизации
"{controller=Home}/{action=Index}/{id?}");
Обновление 1:
Я проверил источник кода
Я обнаружил, что мои представления возвращают правильный @ Model.ImageUrl и дают мне правильное значение, как показано ниже (он получает emma.png, если id = 1), но изображение не будет загружено в / Catalog / Detail / 1, но будет загружено в / Catalog и VS отключает ошибку, о которой я упоминал выше
<div>
<img src="detailImage" alt="/images/emma.png" />
</div>
Ошибка из Visual Studio