#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 }';
Итак, вы неправильно создаете параметры.