1suli0 Ответов: 1

Bootstrap image slider в MVC ломается, когда я пытаюсь передать все файлы из папки в него


@{
    ViewBag.Title = "GalerijaIndex";
    Layout = "~/Views/Shared/_GalerijaLayout.cshtml";
}

<div id="mycarousel" class="carousel slide" data-ride="carousel" style="margin-top: -15px">

    <ol class="carousel-indicators">
        <li data-target="#mycarousel" data-slide-to="0" class="active"></li>
        <li data-target="#mycarousel" data-slide-to="1"></li>
        <li data-target="#mycarousel" data-slide-to="2"></li>
    </ol>
    <div class="carousel-inner" role="listbox">
        <div class="item active">
            <img src="~/Content/First/Music1.jpg" />
        </div>
        @{
            string source = "~/Content/Images/";
            string[] fileEntries = Directory.GetFiles(source);
            foreach (var i in fileEntries)
            {
                <div class="item">
                    <img src="~/Content/Images/@{Path.GetFileName(i)}" />
                </div>
             }
        }
             }


    <a class="left carousel-control" href="#mycarousel" role="button" data-slide="prev">
        <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
        <span class="sr-only">Prethodna</span>
    </a>

    <a class="right carousel-control" href="#mycarousel" role="button" data-slide="next">
        <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
        <span class="sr-only">Slijedeća</span>
    </a>
</div>


Цель состоит в том, чтобы динамически заполнить слайдер всеми изображениями в папке "~Content/Images/", чтобы он мог их отображать. Вся логика здесь на виду, но я не могу понять, почему я получаю ошибку 500.

Что я уже пробовал:

Я пробовал то, что знал, но понятия не имею, что не так. Все остальное работает нормально. Я пробовал передать ему значение через ViewBag из контроллера, то же самое;

Richard Deeming

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

Нажмите кнопку "улучшить вопрос" и обновите свой вопрос с правильным описанием проблемы. Включите полную информацию о любых ошибках.

1suli0

Мне очень жаль, сэр, но это больше не повторится.

1 Ответов

Рейтинг:
0

Richard Deeming

Вы все еще не сказали нам, в чем заключается ошибка, но, по-видимому, она исходит из этих двух строк:

Цитата:
string source = " ~ / Content/Images/";
string[] fileEntries = каталог.GetFiles(источник);

То Directory.GetFiles метод ожидает физический путь к папке. Вы проходите по виртуальному пути, относящемуся к приложению. С тех пор как GetFiles метод ничего не знает о ASP.NET приложения, вы, скорее всего, получите DirectoryNotFoundException.

Чтобы исправить это, вам нужно сопоставить виртуальный путь с физическим путем:
string source = "~/Content/Images/";
string physicalPath = System.Web.Hosting.HostingEnvironment.MapPath(source);
string[] fileEntries = Directory.GetFiles(physicalPath);

NB: Такой код действительно принадлежит контроллеру, а не представлению.