Как исправить ошибку NullReference 'AspNetCore.Views_Home_Index.ExecuteAsync ()' в MVC - PullRequest
0 голосов
/ 09 июня 2019

Я настраиваю простой проект ASP.NET Core MVC, который включает некоторые частичные представления, которые я хочу отображать асинхронно.Но похоже, что независимо от того, отображаются ли они асинхронно или нет, я получаю одну и ту же ошибку ExecuteAsync() NullReferenceException.

Я проверил все модели и HTML-код, но, похоже, он не работает в любом случае, всегда возвращающее:

Произошло необработанное исключение при обработке запроса.NullReferenceException: ссылка на объект не установлена ​​на экземпляр объекта.AspNetCore.Views_Home_Index.ExecuteAsync () в Index.cshtml, строка 4.

Index.cshtml:

@using BestDeal.ViewModels
@model HomeViewModel

@await Html.PartialAsync("ArtikalCarouselPocetna")

<h2>Istaknuti artikli</h2>
<div class="row">
    @foreach (var artikal in Model.odabraniArtikli)
    {
        @Html.Partial("ArtikalPregled", artikal)
    }
</div>

ArtikalCarouselPocetna частичное представление:


<div class="row carousel-holder marginTop1">
    <div class="col-md-12">
        <div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
            <ol class="carousel-indicators">
                <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
                <li data-target="#carousel-example-generic" data-slide-to="1"></li>
                <li data-target="#carousel-example-generic" data-slide-to="2"></li>
            </ol>
            <div class="carousel-inner">
                <div class="item active">
                    <img class="slide-image" src="https://images-na.ssl-images-amazon.com/images/I/71t-J3VJtEL._SX425_.jpg" alt="">
                </div>
                <div class="item">
                    <img class="slide-image" src="https://zdnet1.cbsistatic.com/hub/i/r/2019/04/17/1f68c3a6-495e-4325-bc16-cc531812f0ec/thumbnail/770x433/84ff4194826e8303efb771cd377a854f/chuwi-herobook-header.jpg" alt="">
                </div>
                <div class="item">
                    <img class="slide-image" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKRl7BqXfZupIBH4N8i-tD45gVPctFV5jKTeTmOIADFhZ8J_DAYQ" alt="">
                </div>
            </div>
            <a class="left carousel-control" href="#carousel-example-generic" data-slide="prev">
                <span class="glyphicon glyphicon-chevron-left"></span>
            </a>
            <a class="right carousel-control" href="#carousel-example-generic" data-slide="next">
                <span class="glyphicon glyphicon-chevron-right"></span>
            </a>
        </div>
    </div>
</div>

My Views folder

1 Ответ

1 голос
/ 09 июня 2019

Ваша ошибка в, я думаю, ваша модель нулевая. Таким образом, вы можете проверить это так если (model != null), то

@foreach (var artikal in Model.odabraniArtikli)
    {
        @Html.Partial("ArtikalPregled", artikal)
    }

Итак, я вижу, что ваше представление находится в другой папке, значит, вам нужен полный путь к точке

@await Html.PartialAsync("~/Views/Shered/ArtikalCarouselPocetna.cshtml")

но я предлагаю вам лучше использовать

@{
    await Html.RenderPartialAsync("~/Views/Shered/ArtikalCarouselPocetna.cshtml");
}

Кроме того, вы можете визуализировать частичное представление с помощью RenderPartialAsync. Этот метод не возвращает IHtmlContent. Он передает обработанный вывод непосредственно в ответ. Поскольку метод не возвращает результат, он должен вызываться в блоке кода Razor:

@{
    await Html.RenderPartialAsync("_AuthorPartial");
}

Поскольку RenderPartialAsync передает потоки визуализированного содержимого, в некоторых сценариях он обеспечивает лучшую производительность. В ситуациях, критичных к производительности, сравните страницу, используя оба подхода, и используйте подход, который генерирует более быстрый ответ.

https://docs.microsoft.com/en-us/aspnet/core/mvc/views/partial?view=aspnetcore-2.2

Также Я советую вам использовать частичное представление с _ https://stackoverflow.com/a/10321458/8006943

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