簡體   English   中英

動作未接收到AJAX數據

[英]Action not receiving AJAX data

我的動作沒有收到AJAX參數之一,有人知道為什么嗎?

AJAX

 $('#formLista').submit(function (e) {
            e.preventDefault();
            if ($(this).validate()) {
                $.ajax({
                    url: '@Url.Action("CriarListaAcesso")',
                    type: 'POST',
                    dataType: 'JSON',
                    data: $(this).serialize() + '&idLista=@ViewBag.codLista',
                    success: function (obj) {
                        if (obj.success == true) {
                            alert('Acesso definido com sucesso');
                            $('#fecharAcLista').click();
                        }
                        else {
                            alert('### ocorreu um erro ao definir o acesso ###');
                        }

                    }
                }).always(function () {

                });

            }
        });

行動

//I receive the model of the form, but not the idLista string
public ActionResult CriarListaAcesso(UsuarioLista usrListas, string idLista)
{
}

ViewBag.codLista具有代表對象ID的字符串。

嘗試對ID進行硬編碼,但仍接收空字符串

            $.ajax({
            url: '@Url.Action("CriarListaAcesso")',
            type: 'POST',
            data:  {usrListas: $(this).serialize() , idLista : '1234'},
            success: function (obj) {
                if (obj.success == true) {
                    alert('Acesso definido com sucesso');
                    $('#fecharAcLista').click();
                }
                else {
                    alert('### ocorreu um erro ao definir o acesso ###');
                }

            }
        });

操作空字符串圖像: http : //gyazo.com/05bc1243600b62eab2a14b50da17af10

我創建了一種解決方法,將字符串傳遞給模型的屬性之一:

<input type="text" hidden name="codLista" value="@ViewBag.codLista">

所以我的ajax電話看起來像這樣

$('#formLista').submit(function (e) {
        e.preventDefault();
        if ($(this).validate()) {
            $.ajax({
                url: '@Url.Action("CriarListaAcesso")',
                type: 'POST',
                dataType: 'JSON',
                data: $(this).serialize(),
                success: function (obj) {
                    if (obj.success == true) {
                        alert('Acesso definido com sucesso');
                        $('#fecharAcLista').click();
                    }
                    else {
                        alert('### ocorreu um erro ao definir o acesso ###');
                    }

                }
            }).always(function () {

            });

        }
    });

你可以做這樣的事情

  var v=$("form").serialize();
  v=v.replace("=",":").replace("&",",");

然后將其包裝在json括號中

 data:{v},...

希望這可以幫助

您可以創建新的數組元素並追加到序列化數據

var data = $(this).serializeArray();
    data.push({name: 'idLista', value: @ViewBag.codLista});

或者將您的表單類型從帖子中獲取

暫無
暫無

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

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