После вставки записи на страницу index.aspx перенаправьте на функцию успеха ajax Asp.net Ajax - PullRequest
0 голосов
/ 25 декабря 2018

После вставки записи на страницу index.aspx перенаправьте ее в функцию успеха ajax и покажите сообщение с предупреждением («успех»);Я написал функцию addProject(), чтобы выполнить задачу.Я не получил никакой ошибки.запись успешно добавлена ​​в базу данных.но alert("success") сообщение не отображается.

Дизайн формы

<form  id="frmProject" runat="server">
    <div>
        <label class="form-label">First Name</label>    
        <input type="text" id="fname" class="form-control"  />
    </div>
    <div class="form-group" align="left">
        <label class="form-label">Age</label>
        <input type="text" id="age" class="form-control"  />
    </div>
    <div>
        <input type="button" id="b1" value="add" class="form-control" onclick="addProject()" />
    </div>
</form>

Ajax

function addProject() {
    $.ajax({
        type: 'POST',
        url: 'insert.aspx',
        dataType: 'JSON',
        data: {fname: $('#fname').val(), age: $('#age').val()},
        success: function (data) {        
            alert("success");
        },
        error: function (xhr, status, error) {
            console.log(xhr.responseText);
        }
    });
}

insert.aspx

protected void Page_Load(object sender, EventArgs e)
{
    string fname = Request.Form["fname"];
    string age = Request.Form["age"];
    string sql = "insert into record values('" + fname + "','" + age + "')";
    SqlCommand cmd = new SqlCommand(sql, con);
    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();
}

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

Проблема в том, что вызов insert.aspx не возвращает JSON, но возвращает некоторый HTML.Ajax-вызов jQuery с dataType: 'JSON' предполагает, что ответ на вызов API вернет объект JSON.Если ответ не может быть проанализирован как JSON, функция success не вызывается.

В файле insert.aspx вы можете вернуть объект JSON, даже пустого будет достаточно.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="insert.aspx.cs" %>

{}
0 голосов
/ 25 декабря 2018

Попробуйте этот код

[WebMethod]
    public static string doSomething(string fname,string age)
    {
      string sql = "insert into record values('" + fname + "','" + age + "')";
      SqlCommand cmd = new SqlCommand(sql, con);
      con.Open();
      cmd.ExecuteNonQuery();

      con.Close();
      return "Sucess";
    }

И обновите свой Ajax-вызов, как этот

function addProject() {
            $.ajax({
                type: 'POST',
                url: 'Index.aspx/doSomething',
                dataType: 'JSON',
                contentType: "application/json; charset=utf-8",
                data: {fname: $('#fname').val(), age: $('#age').val()},
                success: function (data) {        
                    alert("success");

                },
                error: function (xhr, status, error) {
                    debugger;
                    console.log(xhr.responseText);
                }
            });

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