У меня есть частичное представление _Index
, в котором есть <button class="btn btn-primary" id="btnRejectAdmissionn">Reject Admission</button>
, и при нажатии этой кнопки отображается модал повышения уровня id myModalAdmRej
, в котором есть текстовая область и кнопка <button type="button" class="btn btn-default" id="btnReject">Reject</button>
для добавления замечаний об отклонении, и по нажатию этой кнопки вызывается AJAX для действия RejectAdmission1
, которое перенаправляет на частичное представление _Index
и со значением, назначенным в переменной result
.
Теперь это значение из переменной результата задано в tempdata TempData["mgsId"]
. И это значение временных данных присваивается в скрытом поле ввода <input id="inpMsgVal" name="abc" type="hidden" value="@TempData["mgsId"]" />
, которое присутствует в частичном представлении Index
и в этом частичном представлении @Html.Partial("_Index", Model)
вызывается в главном окне Index
.
Теперь я пытаюсь получить доступ к значению этого скрытого ввода
<input id="inpMsgVal" name="abc" type="hidden" value="@TempData["mgsId"]" />
при нажатии кнопки <button type="button" class="btn btn-default" id="btnReject">Reject</button>
на модальном режиме для добавления замечаний об отклонении.
Проблема с моим кодом в том, что, хотя скрытое поле имеет значение, при доступе к этому значению в AJAX с помощью переменной var getId = $("tr").find("input#inpMsgVal").val();
это значение не getId = ""
.
Таким образом, любая помощь в моем коде будет большой помощью.
Ниже то, что я сделал до сих пор.
Ниже мой основной вид Index
, где вызывается частичный вид, и мой ajax также записан в этом виде, аналогично модальному, у которого есть эта кнопка для вызова AJAX, также присутствует в этом представлении.
<div class="box-body">
<div class="box-body table-responsive no-padding">
<table class="table table-hover">
<thead>
<tr>
<th>Full Name</th>
<th>Grade</th>
<th>Admission Status</th>
<th>Admission Date</th>
<th>Rejection Reason</th>
<th>Action</th>
</tr>
</thead>
<tbody id="studentrejectiontbody">
@Html.Partial("_Index", Model)
</tbody>
</table>
</div>
</div>
Ниже мой частичный вид _Index
@foreach (var item in Model)
{
<tr>
<input id="inpMsgVal" name="abc" type="hidden" value="@TempData["mgsId"]" />
@Html.HiddenFor(x => item.studentid, new { @id = "studentidforRejectectionadmission" })
<td>@Html.DisplayFor(modelItem => item.fullname)</td>
<td>@Html.DisplayFor(modelItem => item.classname)</td>
<td>@Html.DisplayFor(modelItem => item.rejectionreason)</td>
<td>
<button class="btn btn-primary" id="btnRejectAdmissionn">Reject Admission</button>
</td>
</tr>
}
Ниже представлен модальный вид на главном экране, т.е. Index
<div class="modal fade" id="myModalAdmRej" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Reject Admission</h4>
</div>
<div class="modal-body" id="rejectmodalbody" studentIdForRejection="">
<div class="form-group">
<label for="comment">Admission Rejection Remarks:</label>
<textarea class="form-control" rows="5" id="rejectRemarks"></textarea>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" id="btnReject">Reject</button>
</div>
</div>
</div>
Ниже мой AJAX, который присутствует в главном представлении Index
и вызывается нажатием кнопки, присутствующей в модальном режиме, который также присутствует в том же представлении
<script>
$("button#btnReject").click(function () {
debugger;
var studentid = $("div#rejectmodalbody").attr("studentIdForRejection")
var remarks = $("textarea#rejectRemarks").val();
$.ajax({
type: 'post',
url: '/AdmissionRejections/RejectAdmission1',
dataType: 'html',
data: { studentId: studentid, rejRemarks: remarks },
success: function (data) {
debugger
var getId = $("tr").find("input#inpMsgVal").val();
if (getId == "1") {
$("textarea#rejectRemarks").val('');
$("tbody#studentrejectiontbody").html(data);
SuccessAlert("Admission Rejected Successfully", 5000);
$("#myModalAdmRej").modal('hide');
}
else {
$("textarea#rejectRemarks").val('');
$("tbody#studentrejectiontbody").html(data);
ErrorAlert("Student Has Not Doone Admission Yet", 5000);
$("#myModalAdmRej").modal('hide')
}
}
})
});
Ниже приведены действия моего контроллера
public ActionResult Index()
{
var getList = ser.GetAllStudentForRejection();
return View(getList);
}
public ActionResult _Index(string studentName,int studentId = 0, int result =0)
{
if (studentId == 0)
{
TempData["mgsId"] = result;
var getList = ser.GetAllStudentForRejection();
return View(getList);
}
else
{
if (studentName != null && studentName !="")
{
TempData["mgsId"] = result;
var getList = ser.SearchStudentForRejection(studentId);
return View(getList);
}
else
{
TempData["mgsId"] = result;
var getList = ser.GetAllStudentForRejection();
return View(getList);
}
}
}
[HttpPost]
public ActionResult RejectAdmission1(int studentId, string rejRemarks)
{
var getData = ser.RejectAdmission(studentId, rejRemarks);
return RedirectToAction("_Index", new { result = getData });
}