【发布时间】:2020-01-07 20:12:23
【问题描述】:
我的主要想法是显示来自数据库的数据,在每一行旁边,有一个接受和拒绝按钮.onClick,按钮的值被传递给控制器并保存到数据库。到目前为止一切都很好,问题是什么时候我尝试添加一个弹出模式,其中包含输入文本以添加注释。只有当我单击拒绝按钮时它才会出现。我打开开发人员工具,发现它传递了数据行总数的两倍,我不知道如何传递我所在行的 id、被拒绝按钮的值以及最后的消息将被写入控制器。我试图在控制器的拒绝按钮方法中传递模式,但它传递为空。我究竟做错了什么?添加 ajax 后,我的脚本部分是否有条理甚至准确? 我很感激任何帮助。 我的看法:
@model AllmyTries.Models.fulfillmentVM
<!-- page content -->
@using (Html.BeginForm("Add_Fulfillment_Reject", "Feedback", FormMethod.Post))
{
@Html.AntiForgeryToken()
<td>
<button id="btnReject" class="btn btn-lg btn-danger" name="button" data-toggle="modal" data-target="#exampleModal" type="submit" onclick="reject(0)" value="0">Reject</button>
@Html.Hidden("Request_ID", Model._Requests[i].Request_ID)
@Html.Hidden("Status", Model._Requests[i].Status, new { id = "myEdit", value = "" })
</td>
<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">
<form id="myform">
<div class="form-group">
<textarea class="form-control" id="message-text"></textarea>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<input type="reset" value="submit" class="btn btn-success" id="finalSave" />
</div>
</div>
</div>
</div>
}
<!-- /page content -->
@section Scripts {
<script>
$('[name = "button"]').click(function () {
$('[name = "Status"]').val($('[name = "button"]').val());
})
$(document).ready(function () {
$('#finalSave').click(function () {
var dataform = $('#myform').serialize();
$.ajax({
type: 'POST',
url: '/Feedback/Add_Fulfillment_Reject',
data: dataform,
success: function () {
$('#exampleModal').modal('hide');
}
})
})
})
</script>
}
控制器:
#region fulfillment
[HttpPost]
public ActionResult Add_Fulfillment_Accept(int Request_ID, int? Status)
{
var user = db.TBL_Request.Find(Request_ID);
user.Inserted_by = Status ?? 0;
db.SaveChanges();
return RedirectToAction("Index");
}
//this is the one with the issue
[HttpPost]
public ActionResult Add_Fulfillment_Reject(fulfillmentVM vM)
{
//save the status
//save the note
db.SaveChanges();
return RedirectToAction("Index");
}
#endregion
}
【问题讨论】:
-
您能否编辑您的问题并删除不必要的代码?我们只需要查看与您的问题相关的代码。
-
@devlincarnate 我编辑它并将拒绝按钮代码放在视图中
-
您的
onClick事件调用了一个名为reject(0)的方法 - 没有一个名为reject的方法,它也是一个提交按钮(您在表单中)...您还下面有另一个提交按钮,它将根据您的表单定义执行后端代码,但您也有一个 AJAX 方法在下面根据名称执行它...为什么? -
@ragerory
onClick是我的尝试之一,但没用,我删除了它。 ajax 用于将在模态中写入的文本传递给控制器,或者我将如何传递它?模态提交中的按钮,我的想法是将数据传递给控制器。你建议我编辑按钮或ajax ??或者我该怎么办? -
@ragerory,当我从拒绝按钮中删除
type="submit "并将其与type=" button".i 一起放置时,运行应用程序并 onClick,它显示弹出窗口并获取文本但是当我点击提交它关闭并且不去控制器。
标签: javascript c# ajax asp.net-mvc entity-framework-6