我有局部视图_Index
,其中有<button class="btn btn-primary" id="btnRejectAdmissionn">Reject Admission</button>
,单击此按钮后,显示ID为myModalAdmRej
的boostrap模式,其中包含文本区域和按钮<button type="button" class="btn btn-default" id="btnReject">Reject</button>
添加拒绝备注,然后单击此按钮,将对动作RejectAdmission1
进行AJAX调用,该动作将重定向到部分视图_Index
,并且在变量result
中分配了值。
现在,结果变量中的该值已分配到tempdata TempData["mgsId"]
中。并在部分视图<input id="inpMsgVal" name="abc" type="hidden" value="@TempData["mgsId"]" />
和部分视图Index
中存在的隐藏输入字段@Html.Partial("_Index", Model)
中分配了该tempdata值。
在主视图Index
中被调用。
现在,我要尝试的是访问该隐藏输入字段的值
<input id="inpMsgVal" name="abc" type="hidden" value="@TempData["mgsId"]" />
单击模式上的按钮<button type="button" class="btn btn-default" id="btnReject">Reject</button>
以添加拒绝备注。
我的代码存在的问题是,即使隐藏字段具有值,通过var getId = $("tr").find("input#inpMsgVal").val();
变量在AJAX上访问该值时也没有该值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 });
}