RenderPartial и всплывающее модальное MVC C#

У меня есть код в представлении индекса

@foreach (var item in Model){
<tr><td>......</td>
    <td><button class="success" data-toggle="modal" data-target="#detailsModal" >details</button>
        <div class="modal fade" id="detailsModal" tabindex="-1" role="dialog" aria-labelledby="detailsModalLabel" aria-hidden="true">
             @{Html.RenderPartial("_Details", item);}
        </div></td></tr>}

но после нажатия моей кнопки в разных строках всплывающее окно всегда отображает первый элемент базы данных. Как я могу это изменить?

контроллер

        public ActionResult Details(int? id)
    {
        DBase dbase = new DBase();
        dbase = db.DBase.Find(id);
        return PartialView("_Details", dbase);
    }

1 ответ

Решение

У тебя есть multiple модалы, объявленные в вашем HTML с тем же ID из-за вашего foreach петля.

Поэтому он использует только первый найденный модальный элемент. Чтобы это исправить, дайте каждому вашему модалу уникальный идентификатор.

Так что вы бы изменить data-target="#detailsModal" а также id="detailsModal" добавив к нему индекс, чтобы он был как id="detailsModal-1" так далее

Другие вопросы по тегам