簡體   English   中英

如何使用 AJAX 從視圖中將 id 發布到 ASP.Net controller?

[英]How I can POST an id to ASP.Net controller from view using AJAX?

我正在嘗試將 ID 發布到 controller,但未發送任何內容。 我正在使用 Sweet Alert 從警報中執行此操作。

這是視圖的代碼:

@foreach (var item in Model)
{
   <div>
       <a class="btn btn-danger py-2 my-1" onclick="Clickfn(@item.CertificadosID)" data-id="@item.CertificadosID">Eliminar</a>
   </div>
}

<script>
function Clickfn(id) {
    swal({
        title: "¿Estas seguro de que quieres eliminar esto?",
        text: "La información se perdera hasta que vuelva a editarla",
        icon: 'warning',
        dangerMode: true,
        buttons: [
            { text: "Cancelar", visible: true, value: null, closeModal: true },
            { text: "Eliminar", visible: true, value: true, closeModal: true }
        ]
    }).then((value) => {
        if (value == true) {
            $.ajax({
                url: '/Certificados/Delete',
                type: 'POST',
                data: { "id": id }
            });
        }
    });
}
</script>

這是 controller 操作的代碼:

    [HttpPost, ActionName("Delete")]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> DeleteConfirmed(int id)
    {
        var certificados = await _context.Certificados.FindAsync(id);
        _context.Certificados.Remove(certificados);
        await _context.SaveChangesAsync();
        TempData["Mensaje"] = "Su certificado ha sido eliminado";
        return RedirectToAction(nameof(Index));
    }

這是一個使用 ajax 將數據發布到[ValidateAntiForgeryToken]操作的演示:

視圖(你需要在視圖中使用<form method="post"></form> ,這樣你就可以擁有$('input[name="__RequestVerificationToken"]') ):

<form method="post"></form>
    <a class="btn btn-danger py-2 my-1" onclick="Clickfn(1)" data-id="1">Eliminar</a>
@section scripts{ 

<script>
    function Clickfn(id) {
        var token = $('input[name="__RequestVerificationToken"]').val();
        $.ajax({
            url: '/Certificados/Delete',
            type: 'POST',
            headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
            data: { "id": id }
        });
    }
</script>
}

Controller:

[HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> DeleteConfirmed(int id)
        {
            return Ok();
        }

結果: 在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM