ASP.NET IActionResult Detail (int id) id равен 0, хотя я пытаюсь получить доступ к / Detail / 1 - PullRequest
0 голосов
/ 01 ноября 2018

Итак, я пытаюсь получить доступ к странице 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

1 Ответ

0 голосов
/ 01 ноября 2018

Извините, что опубликовал вопрос слишком рано. Нашел проблему, проблема в теге html, который я написал для тега img

Я написал

<div>
<img src="detailImage" alt="@Model.ImageUrl" />
</div>

вместо

<div>
<img class="detailImage" src="@Model.ImageUrl" />
</div>

Спасибо всем, кто пытался помочь, нужно позаботиться о моем сокращенном синтаксисе ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...