Как получить доступ к значению из скрытого поля ввода возвращенного частичного представления в Ajax Success? - PullRequest
0 голосов
/ 24 января 2019

У меня есть частичное представление _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">&times;</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 });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...