Метод страницы, не отвечающий в asp.net

#asp.net #asmx #pagemethods

#asp.net #asmx #pagemethods

Вопрос:

я вызываю две серверные функции с помощью метода страницы, но ничего не происходит. здесь я привожу свой код. итак, пожалуйста, скажите мне, какую ошибку я допустил,

мой aspx-код

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

<!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>

</head>
<body>
    <form id="form1" runat="server">
     <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
    </asp:ScriptManager>
    <div>
    <a href="#" onclick="javascript:preview();">Test</a>
        <br />
    </div>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

     <br />
     <br />
     <asp:Button ID="btnSetvwState" runat="server" Text="Set Session Val" OnClientClick="SetSessionVal;return false;" />
        <asp:Button ID="btnGetVwState" runat="server" Text="Get Session Val" OnClientClick="GetSessionVal;return false;"/>
   <script language="javascript">
       function preview() {
           alert($get('TextBox1').value);
           PageMethods.GetMessage("Hi", "Joy", onSuccess)
           return false;
       }

       function onSuccess(res) {
           alert(res);
       }

       function GetSessionVal() {
           PageMethods.GetViewState(onSuccess)
           return false;

       }

       function SetSessionVal() {
           alert("pp");
           PageMethods.SetViewState("Hi", "Tridip", onSuccess)
           return false;

       }
    </script>
    </form>
</body>
</html>
  

мой серверный код


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

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

        }

        [System.Web.Services.WebMethod]
        public static string GetMessage(string pr1,string pr2)
        {
            return pr1   " "   pr2;
        }

        [System.Web.Services.WebMethod(EnableSession=true)] 
        public static void SetViewState()
        {
            HttpContext.Current.Session["data"] = "Hellp";

        }

        [System.Web.Services.WebMethod(EnableSession = true)]
        public static string GetViewState()
        {
           return (String) HttpContext.Current.Session["data"] ;

        }
    }
}
  

пожалуйста, помогите мне исправить ошибку. Спасибо

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

1. что вы видите? Что не работает, что вы видите?

2. Вы пытались это отладить? Вы установили точки останова? Что произошло? Мы не собираемся отлаживать ваш код за вас, но мы поможем вам, если вы расскажете, что вы пробовали.

3. попробуйте OnClientClick="SetSessionVal();return false;" и имейте в виду, что возвращаемое значение false может привести к тому, что обработчик события click на стороне сервера не сработает.

Ответ №1:

() здесь отсутствует ( SetSessionVal , GetSessionVal ):

  <asp:Button ID="btnSetvwState" 
             runat="server" Text="Set Session Val" 
             OnClientClick="SetSessionVal();return false;" />
    <asp:Button ID="btnGetVwState" 
                runat="server" Text="Get Session Val" 
                OnClientClick="GetSessionVal();return false;"/>
  

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

1. не могу с уверенностью сказать, что это вызывает его проблему, но мне это тоже показалось странным.

2. да, отсутствовал (), но когда я использую OnClientClick=»SetSessionVal(); возвращает false;», тогда также pagemethod не вызывается. я не могу перехватить ошибку. поэтому, пожалуйста, скажите мне, чего не хватает.