Обновление данных с использованием Ajax и MVC fix POST 404 (не найдено) - PullRequest
0 голосов
/ 03 марта 2019

В проекте ASP.NET MVC у меня есть 1 класс (UseDB) следующим образом:

public class UseDB
{
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["SvTrungData"].ConnectionString.ToString());


    public int UpdateQIOG(int QA_ID)
    {
        int i;
        con.Open();
        SqlCommand cmd = new SqlCommand("UpdateQIOG", con);
        cmd.CommandType = System.Data.CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@ID", QA_ID);        
        i = cmd.ExecuteNonQuery();
        return i;
    }
}

И процедура запроса выглядит следующим образом

ALTER Procedure [dbo].[UpdateQIOG]  
(    
@ID int
)    
As    
Begin        
 Update QIOG set QA_Result='true' where QA_ID=@ID
End

В контроллере я вызываюКласс UseDB и метод обновления:

 UseDB udb = new UseDB();
    [HttpGet]
            public JsonResult UpdateQIOG1(int qa)
            {
                return Json(udb.UpdateQIOG(qa), JsonRequestBehavior.AllowGet);
            }

И Ajax, html код:

<div class="modal fade" id="modalOK">
    <div class="modal-dialog" style="width: 300px;">
        <div class="modal-content">
            <form id="frmOK">
                <div class="modal-header">
                    <a href="#" class="close" data-dismiss="modal">&times;</a>
                    <h4>Xin nhập mã kiểm tra</h4>
                </div>
                <div class="modal-body">

                    <div class="col-md-12 col-lg-12 col-xs-12">
                        <div class="row">
                            <div class="overlay overCheck" style="margin-left: 20px;color: red;display: none;">
                                <i class="fa fa-refresh fa-spin"></i> Đang tải...
                            </div>
                        </div>
                        <div class="row">
                            <div class="form-group">
                                <input type="hidden" id="txtID" />
                                <input type="password" class="form-control" id="txtPass" autofocus />
                            </div>
                        </div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="reset" class="btn btn-default ajax" data-dismiss="modal">Cancle</button>
                    <button id="btnOK" type="button" class="btn btn-danger">OK</button>
                </div>
            </form>
        </div>
    </div>
</div>

function EditOK(QA_ID) {
            var url = "/Skywork/GetQaByID?QA_ID=" + QA_ID;
            $("#modalOK").modal();
            var over = $('.overCheck');
            over[0].style.display = 'block';
            setTimeout(function () {
                over[0].style.display = 'none';
                $.ajax({
                    type: "GET",
                    url: url,
                    contentType: 'application/json; charset=utf-8',
                    success: function (result) {
                        var obj = JSON.parse(result);
                        $('#txtID').val(obj.QA_ID);
                    }
                });
            }, 500);
        }


        $(document).on("click", ".btn-success", function (evt) {

            EditOK($('.btn-success').attr('data-id'));
        });

        function UpdateQI(qa) {
            var url = "/Skywork/UpdateQIOG1?qa=" + qa;
            var btn = $(this);
            btn.prop('disabled', true);
            setTimeout(function () {
                btn.prop('disabled', false);
                if ($('#txtPass').val() == "") {
                    alert('Bạn phải nhập mã xác nhận');
                    alert(id);
                }
                else if ($('#txtPass').val() == "123") {
                    if (confirm('Bạn có chắc chắn muốn thay đổi dữ liệu này?')) {
                        $.ajax({
                            type: "POST",
                            url: url,
                            contentType: "application/json;charset=UTF-8",
                            dataType: "json",
                            success: function (response) {
                                alert('Cập nhật thành công!');
                                $(".close").click();
                                loadListQA1($('#txtMaSX_QA').val());
                            },
                            error: function (errormessage) {
                                alert(errormessage.responseJSON);
                            }
                        });
                    }
                }
            }, 1000);
        }

        $('#btnOK').click(function () {
            var qi = $('#txtID').val();
            UpdateQI(qi);
        });

enter image description here

Когда я нажимаюКнопка, метод возвращает ошибку не найдена.Я не могу понять, что происходит с моим кодом.Обновите данные по ID на модале, не перезагружая страницу.Пожалуйста, дайте мне ответ.Большое спасибо

1 Ответ

0 голосов
/ 03 марта 2019

Ваш метод обновления: получить

[HttpGet]
            public JsonResult UpdateQIOG1(int qa){}

изменить на

[HttpPost]
            public JsonResult UpdateQIOG1(int qa){}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...