Вы всегда можете нажать F12, чтобы проверить инструменты разработчика, чтобы найти ошибку. В вашем случае есть несколько ошибок.
1. <input type="hidden" class="id" value="item.id" />
Вам необходимо использовать @item.id
или @item.StudentId
(на основе демонстрации), чтобы получить значение, пока вы пропускаете @
в коде.
2. $('#editStudentModal #id').val(student.StudentId);
Тогда вы можете использовать console.log(student)
в ajax успешно, чтобы проверить возвращаемое json:
{studentId: 1, name: "John"}
Итак, вам нужно использовать student.studentId
вместо student.StudentId
.
3. Кроме того, так как вы используете $('#editStudentModal #id')
, он найдет id="id"
, но вы только установите name="id"
, добавьте id на вход или используйте следующий код для поиска элемента:
$('#editStudentModal input[name="id"]').val(student.studentId);
$('#editStudentModal input[name="name"]').val(student.name);
Полный код
@model List<Student>
<table class="table table-striped table-hover">
<thead>
<tr>
<th>StudentId</th>
<th>Name</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.StudentId)
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
<a href="#editStudentModal" class="edit" data-toggle="modal"><i class="material-icons" data-toggle="tooltip" title="Edit"></i></a>
<input type="hidden" class="id" value="@item.StudentId" />
</td>
</tr>
}
</tbody>
</table>
<!--Edit Modal Html-->
<div id="editStudentModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<form method="post" asp-controller="Home" asp-action="updateStudent">
<div class="modal-header">
<h4 class="modal-title">Edit Student</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<div class="form-group">
<label>Id</label>
<input type="text" class="form-control" required="required" name="id" />
</div>
<div class="form-group">
<label>Name</label>
<input type="text" class="form-control" required="required" name="name" />
</div>
</div>
<div class="modal-footer">
<input type="button" class="btn btn-default" data-dismiss="modal" value="Cancel" />
<input type="Submit" class="btn btn-info" value="Save" />
<input type="hidden" id="id" name="id" />
</div>
</form>
</div>
</div>
</div>
@section Scripts{
<script type="text/javascript">
$(document).ready(function () {
$('[data-google="tooltip"]').tooltip();
$('table .edit').on('click', function () {
var id = $(this).parent().find('.id').val();
$.ajax({
type: 'GET',
url: '/Home/Find/' + id,
success: function (student) {
console.log(student);
$('#editStudentModal input[name="id"]').val(student.studentId);
$('#editStudentModal input[name="name"]').val(student.name);
}
})
})
});
</script>
}
Результат: