首页 > 解决方案 > Ajax 发布两次 ASP NET CORE MVC

问题描述

控制器

    [HttpPost]
    public IActionResult Index(string mainFin, string actNumber, int actTypeId)
    {
  
        int userId = Int16.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier));

        Act act = new Act()
        {
            ActTypeId = actTypeId,
            CreateDate = DateTime.Now,
            ApproveDate = null,
            UserId = userId,
            StatusId = 1,
        };

        _unitOfWork.ActRepository.Add(act);
        _notyf.Success("Arayış əlavə edilid !");
        _unitOfWork.Complete();
        return RedirectToAction("Marriage");
    }

阿贾克斯

$(function () {
var actTypeId = $("#questList option:selected").val();
console.log("QuestList ishledi !");
$('#formSubmit').click(function (e) {
    var mainFin = $("#FinInput").val();
    var actNumber = $("#actNumber").val();
    console.log(mainFin);

    $.ajax({
        url: "/Home/Index",
        type: "POST",
        data: { mainFin: mainFin, actNumber: actNumber },
        success: function (data) {
            console.log("+++++");
        },
        error: function () {
            console.log("------");
        }
    });
    e.preventDefault();
    $("#questForm1").submit();
});
});

问题:当我单击提交按钮时,数据向数据库插入两次(AJAX 同时发出 2 个请求)

标签: c#jqueryajaxasp.net-mvcasp.net-core

解决方案


如果要通过 AJAX 提交表单,则需要删除 click 事件处理程序的最后一行。

$("#questForm1").submit();

这一行正在提交表单,基本上否定了e.preventDefault()上述内容。


推荐阅读