2016-11-17 3 views
0

Я только начал изучать, как использовать jquery ajax в обычных веб-формах в asp.net. Однако я застрял. Я не знаю, в чем проблема. Когда я нажимаю кнопку в форме, она не работает в первый раз, но иногда она работает только при нажатии второй раз. , а затем перестает работать (не отображается предупреждающее сообщение в функции успеха). Он не работает, даже если я перестраиваю проект. В консоли также не отображается ошибка. Пожалуйста, помогите мне.Проблема с вызовом функции 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(); 
    } 

Пожалуйста, дайте мне знать, где я иду не так. Любая помощь будет действительно оценена.

ответ

0

Код в порядке и он работает для меня.

В вашей папке App_Start, в вашем RouteConfig ....

закомментируйте следующую строку или изменить его RedirectMode:

//settings.AutoRedirectMode = RedirectMode.Permanent;

+0

Спасибо, что постарались мне помочь. Но у меня нет такой строки в файле Route.Config. Я даже создал пустой проект и попробовал то же самое, но его все еще не работает – Videl

Смежные вопросы