gpt4 book ai didi

Ajax 调用会在第二次提交表单时重复发布表单

转载 作者:行者123 更新时间:2023-12-04 18:36:55 25 4
gpt4 key购买 nike

出于某种原因,我的 ajax 调用是 双发我第二次提交。
我有一个包含这个的 View :

 @using (Ajax.BeginForm("Create", "BasketPage", new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "myDiv",

}))
{
<textarea id="comment" name="comment"> </textarea> <br />
<input type="submit" class="btn btn-blue" value="Comment" />
}
调用的 BasketPage Controller 操作如下所示:
public PartialViewResult Create(BasketPage currentPage, string comment)
{
Comment newComment = new Comment()
{
Username = User.Identity.Name,
Text = HttpUtility.HtmlEncode(comment),
PageID = currentPage.PageLink.ID
};

commentRepository.Save(newComment);

var model = new BasketListModel(currentPage)
{
CommentsList = commentRepository.GetComments(currentPage.PageLink)
};

return PartialView("_Comment", model);
}


问题场景:
  • 我输入一个值,提交表单。一切都按预期工作。
  • 我再次(因此第二次)输入一个值,提交表单。现在 Save 方法被调用两次 - 这导致该值在数据库中保存两次,创建具有相同值的两行。

  • 如果我用常规的 @Html.BeginForm 替换 Ajax.beginform,则 Save 方法只调用一次。
    我错过了什么?

    最佳答案

    可能是因为您两次将不显眼的 JavaScript 库包含到页面中。

    从您的捆绑配置或包含的 <script> 中检查并删除任何重复项标签。

    关于Ajax 调用会在第二次提交表单时重复发布表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33438765/

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