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"
так далее