首页 > 解决方案 > 在 index.aspx 页面插入记录后重定向到 ajax 成功函数 Asp.net Ajax

问题描述

在 index.aspx 页面插入记录后重定向到 ajax 成功函数并显示消息 alert("success"); 我编写了函数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>

阿贾克斯

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);
        }
    });
}

插入.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();
}

标签: jqueryasp.netjsonajaxwebforms

解决方案


问题是调用insert.aspx不返回 JSON,但它返回一些 HTML。jQuery 的 ajax 调用dataType: 'JSON'期望 API 调用的响应将返回一个 JSON 对象。如果响应无法解析为 JSON,success则不会调用该函数。

insert.aspx文件中,您可以返回一个 JSON 对象,即使是一个空对象也足够了。

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

{}

推荐阅读