gpt4 book ai didi

javascript - Ajax POST 数据未出现在模式中

转载 作者:行者123 更新时间:2023-11-28 03:28:37 27 4
gpt4 key购买 nike

我有一个由 JSON 数据填充的表。在最后一列中,您可以打开与每一行对应的模式,并且可以在输入框中添加注释——这样做将更新该模式。换句话说,没有注释的表行有一个空模态,而至少有一个注释的行应该出现在它们对应的模态中。

在我的后端管理器(SQL Server Management Studio)中,我可以看到注释显示在那里,但它们没有出现在模式中。

我无法判断问题是来自 JavaScript 端( View )还是来自模型,或者来自其他地方。

添加 DocBudgetId 是相对较新的内容。在此之前,评论/评论数据与 DocNumber 相关联,并且信息出现在模态中。我怀疑我必须对 DocBudgetId 进行调整/更改,但我不确定如何进行。

模态截图: /image/Vqd4o.png DocNumber 显示在左上角。已对此模态所属的行进行注释,但它们未出现在模态表中。

型号:

public class ReviewRow
{
public Guid DocBudgetId { get; set; }
public string DocNumber { get; set; }
public string ReviewBy { get; set; }
public string ReviewOn { get; set; }
public string ReviewComment { get; set; }
}

查看:

<div class="modal-body">
<div id="review"></div>
<table>
<tr>
<td>
@Html.LabelFor(x => Model.ReviewComment)<br />
@Html.TextAreaFor(x => x.ReviewComment, new { style = "width: 200px; " })<br />
@Html.HiddenFor(x => x.DocUnderReview, new { id = "txtDocUnderReview" })
<input type="submit" value="@BB360.Models.BudgetReportingViewModel.Buttons.Review" name="@Html.NameFor(x => x.SubmitButton)" id="SubmitButton" class="btn btn-secondary" />
</td>
</tr>
</table>


// --- other code --- //

function ShowReviewModal(DocBudgetId, DocNumber) {
$("#txtDocUnderReview").val(DocNumber);
console.log(DocNumber)

$.ajax({
type: "POST",
url: "/Doc/GetDocUnderReviewDetails",
data: "docNumber=" + DocNumber + "&docBudgetId=" + DocBudgetId,
timeout: 5000,
success: function(data) {
console.log(data); // ------------- empty array
// write out the modal table
var tBody = $("#tblExpenseDeductionDetails tbody");
tBody.empty();
s = "";

for (x = 0; x < data.length; x++) {
let ReviewBy = data[x].ReviewBy,
ReviewOn = data[x].ReviewOn,
ReviewComment = data[x].ReviewComment;
s = s + "<tr>";
s = s + "<td>" + ReviewBy + "</td>";
s = s + "<td>" + ReviewOn + "</td>";
s = s + "<td title='" + ReviewComment.replace(/'/g, '') + "' style='max-width:550px;word-wrap: break-word;'>" + stringTruncate(ReviewComment, 65) + "</td>";
s = s + "</tr>";
}

$("#modalDocName").text(DocNumber);
tBody[0].innerHTML = s;
$("#ReviewModal").modal();
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});

$("#ReviewModal").modal();
}

Controller

public ActionResult BudgetReporting(BudgetReportingViewModel model)
{
Common.GetDbExecutor().QueryNonQuery(Sql.InsertDocUnderReview, new {
model.DocBudgetId,
DocNumber = model.DocUnderReview, // D is uppercase
ReviewBy = Common.GetUserName(),
ReviewComment = model.ReviewComment,
}, 30).ToString();

PopulateBudgetReportingDetail(model);

return View(model);
}

public ActionResult GetDocUnderReviewDetails(Guid docBudgetId) // camelCase //
{
var data = Common.GetKKDbExecutor().Query<BudgetReportingViewModel.ReviewRow>(Sql.GetDocUnderReviewDetails, new {
docBudgetId
}).ToList();

return Json(data);
}

SQL 文件

namespace BB360
{
public partial class Sql
{
public const string GetDocUnderReviewDetails = @"

select
DocBudgetId,
DocNumber,
ReviewBy,
convert(varchar, ReviewOn, 101) as ReviewOn,
isnull(ReviewComment, '') as ReviewComment
from DocBudgetReview
where DocBudgetId = @DocBudgetId
order by ReviewOn desc
";
}
}

最佳答案

这里的问题是您的“GetDocUnderReviewDetails”操作接受 GET 请求,并且您正在向其发送发布请求。您只需将ajax请求类型更改为GET即可。

type: "GET",
url: "/Doc/GetDocUnderReviewDetails",

我注意到的另一件事是,您还在请求中发送了您的操作不需要的文档编号。即使这不会导致任何问题,但您不需要在 ajax 中发送

关于javascript - Ajax POST 数据未出现在模式中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58386702/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com