Я хочу инициализировать модель, свойства которой зависят от того, какая кнопка нажата. Затем модель передается в частичное представление. Частичное представление показано как модальное. Вот что мне нужно сделать:
Вид:
@model IEnumerable<Students.Models.Student>
@{
Students.Models.Student s;
}
@foreach (var student in Model)
{
<btn class="btn btn-success" id="modBtn">Edit student @Model.id</btn>
// s = student; -- assign model to button
}
@Html.Partial("/Views/Student/_PartialShow.cshtml", s)
Вот js, чтобы показать модальное частичное представление:
$(function () {
// Vars
var modBtn = $('#modBtn'),
modal = $('#modal'),
close = modal.find('.close'),
modContent = modal.find('.modal-content');
// open modal when click on open modal button
modBtn.on('click', function () {
modal.css('display', 'block');
modContent.removeClass('modal-animated-out').addClass('modal-animated-in');
});
// close modal when click on close button or somewhere out the modal content
$(document).on('click', function (e) {
var target = $(e.target);
if (target.is(modal) || target.is(close)) {
modContent.removeClass('modal-animated-in').addClass('modal-animated-out').delay(300).queue(function (next) {
modal.css('display', 'none');
next();
});
}
});
});
Я не уверен, правильно ли я поступлю. Идея состоит в том, чтобы открыть частичное представление с автоматически заполненными текстовыми полями в зависимости от того, какая кнопка нажата. И используйте идентификатор модели для вызова действия с параметром ID.
Этот подход работает для создания новых студентов, само частичное представление публикуется успешно, но сейчас мне просто нужен способ передать ему значения.