Javascript завершается при вызове функции

#javascript #jquery #asp.net #jquery-ui

#javascript #jquery #asp.net #jquery-пользовательский интерфейс

Вопрос:

Я пытаюсь выполнить вызов серверного метода со стороны клиента в течение 2 дней подряд. Просмотрел множество блогов и сообщений. Я новичок в jquery и, следовательно, полностью полагался на онлайн-демонстрацию. Проблема, с которой я сталкиваюсь прямо сейчас, заключается в том, что мой jquery инициируется при вызове и завершается при вызове функции, используемой в нем. Могу ли я получить некоторую помощь здесь. Пример кода прилагается к настоящему документу. Вы также можете найти этот код по следующей ссылке http://aspdotnetcode.source-of-humor.com/Articles/JQuery/JqueryAjaxRequestForCallingASPNetServerSideFunction.aspx . Будем признательны за любую помощь.

страница aspx

 <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="JqueryAjaxRequestSample.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="jquery-1.4.2.min.js" type="text/javascript"></script>

<script type="text/javascript" language="javascript">

  function InitiateJqueryAjaxRequestCall() {

    var reqParameter1 = $('#<%= txtParameter1.ClientID %>')[0].value;
    var reqParameter2 = $('#<%= txtParameter2.ClientID %>')[0].value;

    var requestParameters = '{'  
                            'reqParameter1:"'   reqParameter1   '", '  
                            'reqParameter2:"'   reqParameter2   '"'  
                            '}';

    // Configure AJAX call to server                        
    $.ajax({
      type: "POST",
      url: "JqueryAjaxRequestSample.aspx/GetSum",
      data: requestParameters,
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: DisplayResponse,//Event that'll be fired on Success
      error: DisplayError //Event that'll be fired on Error
    });
  }
  function DisplayResponse(serverResponse) {            
    alert('Server Response: Sum of numbers is = ' serverResponse.d);
  }
  function DisplayError(serverResponse) {
    alert("Some Error Occured");
  }

</script>

</head>
<body>
   <form id="form1" runat="server">
    <asp:TextBox ID="txtParameter1" runat="server"></asp:TextBox>
    <asp:TextBox ID="txtParameter2" runat="server"></asp:TextBox>
    <input id="btnSendJqueryCall" onclick="InitiateJqueryAjaxRequestCall();" type="button"
        value="Invoke Page Method using JQuery" />
</form>

</body>
</html>
  

CodeBehind

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    [WebMethod]
    public static int GetSum(int reqParameter1, int reqParameter2)
    {
        return reqParameter1   reqParameter2;
    }

}
  

Комментарии:

1. Если вы нажмете F12 в IE, вы сможете отладить Javascript на стороне браузера.

2. Вызывается ли ваша функция getSum на стороне сервера или она завершается еще до этого?

3. Он завершается @ var reqParameter1 = $(‘#<%= txtParameter1.ClientID %>’)[0].значение;

4. разве это не должно просто быть $('#<%= txtParameter1.ClientID %>').value ?

5. @Bala попробовал $(‘#<%= txtParameter1.ClientID %>’).значение …. Бесполезно : (

Ответ №1:

Если вы отправляете свои параметры подобным образом, это работает:

 var requestParameters = '{ reqParameter1:1, reqParameter2:2 }';
  

Итак, вы неправильно создаете параметры.