Параметр AJAX по-прежнему нулевой - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть простая модальная форма, используемая для вставки данных;когда я отправляю данные, я правильно иду к своему методу, но параметр все еще имеет нулевое значение.

Это мой код Razor:

<form id="SaveKeyForm" asp-page-handler="SaveExternalKEY" data-ajax="true" data-ajax-method="post">
<div class="modal-body">
    <input name="IsValid" type="hidden" value="@ViewData.ModelState.IsValid.ToString()" />
    <div class="form-group">
        <label asp-for="wItem.Guid"></label>
        <input asp-for="wItem.Guid" name="GUID" class="form-control" id="modalCustomerGUID" readonly required />
        <span asp-validation-for="wItem.Guid" class="text-danger"></span>
    </div>
    <div class="form-group">
        @Html.Hidden("External_Key_Type_ID", "")
        <select class="custom-select mr-sm-2" asp-items="_KeyOptions" name="Selected_Key_Type_ID"><option selected>Choose</option></select>
    </div>
    <div class="form-group">
        <label asp-for="wExternal_ID.ExternalKey"></label>
        <input asp-for="wExternal_ID.ExternalKey" name="ExternalKEY" class="form-control" required/>
        <span asp-validation-for="wExternal_ID.ExternalKey" class="text-danger"></span>
    </div>
</div>
<div class="modal-footer">
    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
    <button type="submit" id="saveKey" class="btn btn-primary">Save</button>
</div>

Это мой код JS:

 $("#saveKey").click(function (e) {
    e.preventDefault();

    console.log('Ajax submit');        
    var form = $(this).parents('.modal').find('form');
    var formAction = form.attr('action');
    var fdata = form.serialize();        
    console.log(fdata);

    var sdata = { GUID: 'fdsfas' };

    $.ajax({
        type: 'post',
        url: formAction,            
        data: sdata,
        dataType: "text",
        processData: false,
        headers: {
            RequestVerificationToken:
                $('input:hidden[name="__RequestVerificationToken"]').val()
        },
        statusCode: {
            404: function () {
                console.log("page not found");
            },
            200: function () {
                console.log("Status Ok");
            }
        }

    }).done(function (result) {
        console.log('Result: ' + result);            
    });
});

и это мой метод:

    public IActionResult OnPostSaveExternalKEY(string GUID)
    {
        try
        {
            return new OkResult();
        }
        catch (Exception ex)
        {

            return  new StatusCodeResult(404);
        }
    }

}

Я попытался: - передать данные как переменную 'fdata': все еще null - передать фиксированные данные как переменную 'sdata': still null - попытаться сериализовать Json: still null

Если я использую jquery-ajax-unobtrusive, я могу правильно передать значение своему методу, но не могу обработать сообщение об ошибке в модальной форме и изменение URL-адреса. Спасибо за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...