首页 > 解决方案 > 在 ASP .NET 核心上不显眼地在数据库上插入两次

问题描述

我认为我有一个 Ajax 表单。它与时事通讯有关

<div class="d-flex flex-column">
    <div class="d-flex align-items-center">
       
        <div class="px-lg-8">
         
            <div class="d-flex align-items-center">
                <div class=" ml-3">
                    <svg xmlns="http://www.w3.org/2000/svg" width="21.238" height="15.291" viewBox="0 0 21.238 15.291">
                        <path d="M0 0v15.292h21.238V0zm.849.849h19.54v1.062l-8.31 7.244-.04.04a2.194 2.194 0 0 1-1.42.571 2.2 2.2 0 0 1-1.42-.571c-.158-.138-1.293-1.118-2.111-1.832C4.661 5.255.974 2.021.849 1.912zm0 2.19c.737.642 3.35 2.917 5.575 4.858L.849 12.305zm19.539 0v9.266l-5.575-4.407c2.226-1.943 4.839-4.216 5.576-4.858zM7.075 8.469l1.566 1.367.013.013a3.057 3.057 0 0 0 1.965.77 3.051 3.051 0 0 0 1.978-.783c.12-.1 1.059-.913 1.58-1.367l6.212 4.911v1.062H.849V13.38z" data-name="Path 319"></path>
                    </svg>
                </div>
                <h5 class="mb-0"> @_localizer["NewsLetterMemberShip"]</h5>
            </div>
            <p class="my-3 ">@_localizer["ReceiveNewsLetter"]</p>
            <div class="textbox-footer  ">

                <form asp-controller="Home" asp-action="NewsLetter" data-ajax="true"     data-ajax-mode="replace" data-ajax-success="NewLetterPostSuccess">

                    <input asp-for="Email" id="NewsLetterEmail" class="form-control input-textbox-footer  "
                           placeholder="@_localizer["EnterEmail"]">
                    <span asp-validation-for="Email"></span>

                    <button type="submit" class="btn btn--orange footer__send-btn">@_localizer["SendButton"]</button>
                     
                </form>
            </div>
        </div>
    </div>

</div>

它运作良好。但现在我看到点击时事通讯后,它插入了两次电子邮件,它有一个参考:

<script src="/lib/jquery-unobtrusive-ajax/jquery.unobtrusive-ajax.min.js"></script>

如果我删除此引用,它将正常工作并插入 1 次。

这是我的脚本:

function NewLetterPostSuccess(result) {
  swal('info', result.text, 'info');
  $('#NewsLetterEmail').val('');
}

我看到解决的方法是删除这个引用。但是不是针对ajax形式的吗?如果我删除参考文献,我也会犯另一个错误。如何解决这个问题?

标签: asp.net-core

解决方案


我发现我的错误。它在 2 条不同的路线上以“不引人注目”的方式引用了两次页面。

<script src="/lib/jquery-unobtrusive-ajax/jquery.unobtrusive-ajax.min.js"></script>

我删除了其中一个,现在效果很好。

始终检查您的所有项目以供参考!:)


推荐阅读