0
asp.netの通常のWebフォームでjquery ajaxを使用する方法を学び始めました。しかし、私は立ち往生しています。私は正確に何が問題なのか分かりません。 フォーム上のボタンをクリックすると、最初には機能しませんが、2回目にクリックしたときにのみ機能することがあります。 その後、動作を停止します(成功関数に警告メッセージは表示されません)。プロジェクトを再構築しても機能しません。コンソールにもエラーは表示されません。私を助けてください。以下はJQuery Ajax関数呼び出しの問題
は私のコード 従業員クラス
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public string Country { get; set; }
public int Salary { get; set; }
public int DeptId { get; set; }
}
部門クラス
public class Department
{
public int DeptId { get; set; }
public string Name { get; set; }
}
ファイル
の背後にあるコードでTest.aspxというコード<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>
<script type = "text/javascript">
$(document).ready(function() {
$('#Button1').click(function() {
var Name = $("#txtName").val();
var Gender = $("#ddlGender").val();
var Country = $("#txtCountry").val();
var Salary = $("#txtSalary").val();
var DeptId = $("#ddlDept").val();
var employee = {
"Name": Name,
"Gender": Gender,
"Country": Country,
"Salary": Salary,
"DeptId": DeptId
}
$.ajax({
context: this,
type: "POST",
url: "test.aspx/GetResultFromDB",
data: JSON.stringify({ employee: employee }),
contentType: "application/json; charset=utf-8",
dataType: "json",
cache:false,
success: OnSuccess,
failure: function (response) {
alert("In Error");
alert(response.d);
}
});
});
function OnSuccess(response) {
alert("In succcess");
alert(response.d);
console.log(response.d);
}
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div>
<table>
<tr>
<td>Name</td>
<td><asp:TextBox ID="txtName" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>Country</td>
<td><asp:TextBox ID="txtCountry" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>Gender</td>
<td><asp:DropDownList ID="ddlGender" runat="server">
<asp:ListItem Text="Select" Value="0"></asp:ListItem>
<asp:ListItem Text="Male" Value="Male"></asp:ListItem>
<asp:ListItem Text="Female" Value="Female"></asp:ListItem>
</asp:DropDownList></td>
</tr>
<tr>
<td>Salary</td>
<td>
<asp:TextBox ID="txtSalary" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>Department</td>
<td><asp:DropDownList ID="ddlDept" runat="server"></asp:DropDownList></td>
</tr>
<tr>
<td colspan="2">
<asp:Button ID="Button1" runat="server" Text="Button"/>
</td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
コードです
[System.Web.Services.WebMethod]
public static string GetResultFromDB(Employee employee)
{
SqlConnection con = EmpDeptDataLayer.GetDBConnection();
SqlCommand cmd = new SqlCommand("spAddEmployee", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Name", employee.Name));
cmd.Parameters.Add(new SqlParameter("@Country", employee.Country));
cmd.Parameters.Add(new SqlParameter("@Gender", employee.Gender));
cmd.Parameters.Add(new SqlParameter("@Salary", employee.Salary));
cmd.Parameters.Add(new SqlParameter("@DeptId", employee.DeptId));
cmd.Parameters.Add(new SqlParameter("@Result", SqlDbType.VarChar, 50)).Direction = ParameterDirection.Output;
con.Open();
int count = cmd.ExecuteNonQuery();
con.Close();
string Result = "";
if (count > 0)
{
Result = cmd.Parameters["@Result"].Value.ToString();
}
else
{
Result = "Error!! Something went wrong";
}
return Result.ToString();
}
私が間違っている場所を教えてください。 本当にありがとうございます。
ありがとうございました。しかし、私はRoute.Configファイルにこのような行はありません。私も空のプロジェクトを作成し、それを試みたが、まだ動作していない – Videl