Я сделал просмотр с записями, и каждая из них приняла и отклонила кнопку. При отклонении, появляется всплывающее окно для написания почему. проблема здесь заключается в том, что всякий раз, когда я нажимаю кнопку отклонения для любой записи, она принимает идентификатор и статус первой записи и type="button"
. Я попытался изменить тип кнопки отклонения type="submit"
, она работает, но идет прямо к контроллеру, не показывая всплывающее окно. буквально, я схожу с ума. Что я делаю не так?
<tbody>
@for (int i = 0; i < Model._Requests.Count(); i++)
{
<tr>
<td>
@Html.HiddenFor(x=>Model._Requests[i].Request_ID , new {Name="theId" })
</td>
<td>
@Html.DisplayFor(x => Model._Requests[i].Account_Name)
</td>
<td>
@Html.DisplayFor(x => Model._Requests[i].LOB)
</td>
<td>
@Html.DisplayFor(x => Model._Requests[i].Operation_Date)
</td>
<td>
@Html.DisplayFor(x => Model._Requests[i].Employee_no)
</td>
<td>
@Html.DisplayFor(x => Model._Requests[i].Fulfillment_Rate)
</td>
@if (Model._Requests[i].Status == false)
{
<td>
<span name="badge" class="badge badge-warning" id="pend">pending training</span>
</td>
}
@if (Model._Requests[i].Status == true)
{
<td>
<span name="badge" class="badge badge-pill badge-success">completed</span>
</td>
}
@if (Model._Requests[i].Status == null)
{
<td>
<span name="badge" class="badge badge-warning" id="pend">pending</span>
</td>
}
<!--for the accept button-->
@using (Html.BeginForm("Add_Fulfillment_Accept", "TBL_Request", FormMethod.Post))
{
@Html.AntiForgeryToken()
<td>
<button id="btnAccept" class="btn btn-success" name="a_button" type="submit" value="true">Accept</button>
@Html.Hidden("Request_ID", Model._Requests[i].Request_ID)
@Html.Hidden("Status", Model._Requests[i].Status, new { id = "myEdit", value = "" })
</td>
}
<!--for the reject button-->
@using (Html.BeginForm("Add_Fulfillment_Reject", "TBL_Request", FormMethod.Post))
{
@Html.AntiForgeryToken()
<td>
<button id="btnReject" class="btn btn-danger" name="button" data-toggle="modal" data-target="#exampleModal" type="button" value="false">Reject</button>
@Html.Hidden("Request_ID", Model._Requests[i].Request_ID)
@Html.Hidden("Status", Model._Requests[i].Status, new { id = "myEdit", value = "" })
</td>
<!--this is the note modal of the reject button -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">New message</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
@Html.TextArea("Note", Model._Requests[i].Note, htmlAttributes: new { @class = "form-control" })
</div>
</div>
<div class="modal-footer">
<input type="submit" value="submit" class="btn btn-success" id="finalSave" />
</div>
</div>
</div>
</div>
}
</tr>
}
</tbody>
<script>
$(function () {
var msg = "@(TempData["success"] as string)";
if (msg !== "") {
toastr.success('the request status has been updated successfully!');
}
});
$('[name = "a_button"]').click(function () {
$('[name = "Status"]').val($('[name = "a_button"]').val());
})
$('[name = "button"]').click(function () {
$('[name = "Status"]').val($('[name = "button"]').val());
})
</script>
методы контроллера
//accept method for the accept button
#region fulfillment
[CustomAuthorize(Roles = AccessRoleHelper.Training_Action)]
[HttpPost]
public ActionResult Add_Fulfillment_Accept(int Request_ID, bool Status)
{
var user = db.TBL_Request.Find(Request_ID);
user.IsApproved = Status ;
//db.TBL_Request.Add(user);
db.SaveChanges();
TempData["success"] = "Done";
return RedirectToAction("Training_Action");
}
//reject method for the reject button
[CustomAuthorize(Roles = AccessRoleHelper.Training_Action)]
[HttpPost]
public ActionResult Add_Fulfillment_Reject(int theId , bool Status , string Note)
{
var selectedRequest = db.TBL_Request.Find(theId);
selectedRequest.Note = Note;
selectedRequest.IsApproved = Status;
db.SaveChanges();
TempData["success"] = "Done";
return RedirectToAction("Training_Action");
}
#endregion
Я действительно ценю вашу помощь