Ajax Call无法正常工作。当我点击btnsubmit时,它首先显示alert hi然后“Record Save to Database”,但数据不保存到数据库。存储过程名称为“Ajax”。
如何解决错误?提前谢谢..
程序是:
create procedure Ajax
@EmpID nvarchar(50),
@EmpName nvarchar(50),
@EmpAddress nvarchar(50)
as
begin
insert into NewEmp (EmpID, EmpName, EmpAddress)
values (@EmpID, @EmpName, @EmpAddress)
end
HTMl页面:
<script type="text/javascript">
$(document).ready(function () {
$("#btnsubmit").click(function () {
var EmpID = $('#TxtID').val();
var EmpName = $('#TxtName').val();
var EmpAddress = $('#TxtAdd').val();
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "Default11.aspx/InserData",
data: "{'EmpID':'" +EmpID + "','EmpName':'" + EmpName + "','EmpAddress':'" + EmpAddress + "'}",
dataType: "json",
success: function (response) {
alert("Hi");
$("#TxtID").val(''); $("#TxtName").val(''); $("#TxtAdd").val('');
alert("Record Save to Databse");
},
error: function () {
alert("Error");
}
});
});
});
</script>
<div>
<asp:TextBox ID="TxtID" runat="server" ></asp:TextBox>
<br />
EmpName:-<asp:TextBox ID="TxtName" runat="server"></asp:TextBox>
<br />
Addresss:-<asp:TextBox ID="TxtAdd" runat="server"></asp:TextBox>
<br />
<input type="button" id="btnsubmit" value="Submit" />
</div>
C#代码: -
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web.Services;
public partial class Default11 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[System.Web.Services.WebMethod]
public static bool InserData(string EmpID, string EmpName, string EmpAddress)
{
SqlConnection scon = new SqlConnection(ConfigurationManager.ConnectionStrings["AjaxInsert"].ConnectionString);
try {
SqlCommand cmd = new SqlCommand("Ajax",scon);
scon.Open();
cmd.CommandType=CommandType.StoredProcedure;
cmd.CommandText = "Ajax";
cmd.Parameters.AddWithValue("@EmpID", EmpID);
cmd.Parameters.AddWithValue("@EmpName", EmpName);
cmd.Parameters.AddWithValue("@EmpAddress", EmpAddress);
cmd.Connection = scon;
cmd.ExecuteNonQuery();
scon.Close();
// return "success";
}
catch(Exception ex)
{
// return"error";
}
return true;
}
}
答案 0 :(得分:0)
您是否通过断点检查了以下命令的字符串。
"{'EmpID':'" +EmpID + "','EmpName':'" + EmpName + "','EmpAddress':'" + EmpAddress + "'}"
返回服务器?
为什么不data: { EmpID: EmpID , EmpName: EmpName , EmpAddress: EmpAddress }
?
答案 1 :(得分:0)
你不能在java scritpt中使用asp控件.becase asp控件可以在外面访问,即服务器端.insted服务器控件使用html控件,如下所示
的EmpID: -
EmpName: -
编辑部地址: -
答案 2 :(得分:0)
您使用asp control
来获取用户的输入值。所以在jQuery代码中进行更改,如下所示。因为我也面临同样的问题。所以我希望它会对你有所帮助。
<script type="text/javascript">
$(document).ready(function () {
$("#btnsubmit").click(function () {
var EmpID = $('#<%=TxtID.ClientID%>').val();
var EmpName = $('#<%=TxtName.ClientID%>').val();
var EmpAddress = $('#<%=TxtAdd.ClientID%>').val();
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "Default11.aspx/InserData",
data: "{'EmpID':'" +EmpID + "','EmpName':'" + EmpName + "','EmpAddress':'" + EmpAddress + "'}",
dataType: "json",
success: function (response) {
alert("Hi");
$('#<%=TxtID.ClientID%>').val('');
$('#<%=TxtName.ClientID%>').val('');
$('#<%=TxtAdd.ClientID%>').val('');
alert("Record Save to Database");
},
error: function () {
alert("Error");
}
});
});
});
</script>