Prafulla Sahu Ответов: 3

PageMethods не работает в asp.net


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

Пожалуйста, предложите, как бы я решил эту проблему.

Спасибо
Прафулла

Ankur\m/

Моя первая догадка была бы - URL-адрес неверен. Можете ли вы показать свой javascript - код, который вызывает pagemethod?

JoCodes

опубликуйте свой код, который вы пробовали?

sri senthil kumar

Проверьте этот url-адрес для базового синтаксиса вызова метода страницы
http://witstuner.blogspot.in/2013/02/different-ways-of-ajax-call-in-asp.html

Также опубликуйте свой код, чтобы мы могли вам помочь...

3 Ответов

Рейтинг:
2

Rockstar_

Привет Друг,

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

это хорошо, чтобы найти ошибку с Firebug..!


Рейтинг:
2

bhushan123

Below given code worked for me.

.cs -


using Microsoft.AspNet.FriendlyUrls;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

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

    }

    [System.Web.Services.WebMethod(EnableSession = true)] 
    [System.Web.Script.Services.ScriptMethod(UseHttpGet = false, ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
    public static string yourmethod1()
    {
         return "Allow user";
    }
}


apsx.cs Page -


<%@ Page Language="C#" AutoEventWireup="false" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!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 type="text/javascript">

        function GreetingsFromServer()
        {
            PageMethods.yourmethod1(OnSuccess, OnError)
        }
        function OnSuccess(response)
        {
            alert(response);
        }
        function OnError(error) 
        {
            alert(error);
        }
    </script>

</head>


<body>

    <form id="form1" runat="server"  method="post" >

    <div>
            <asp:ScriptManager runat="server" EnablePageMethods="true"  EnablePartialRendering="true"  > </asp:ScriptManager>

            <input id="Button1" type="button" value="button" onclick=" return GreetingsFromServer();" />

    </div>

    </form>
</body>
</html>


Web.conf -



<configuration>

  <appSettings>
           <add key="owin:AutomaticAppStartup" value="false" />
  </appSettings>

    <system.web>

            <compilation debug="true" targetFramework="4.5.2" />

            <httpRuntime targetFramework="4.5.2" />

            <authorization>
                       <allow users="*"/>
            </authorization>

    </system.web>

</configuration>


Рейтинг:
1

Nirav Prabtani

попробовать это.. :)

Язык JavaScript


function GetName() {

    $.ajax({
        type: "POST",
        url: "Default.aspx/GetData", //Pagename/Functionname
        contentType: "application/json;charset=utf-8",
        data: {},//data
        dataType: "json",
        success: function (data) {

           alert(data.d);

        },
        error: function (result) {

         alert("error")

        }
    });
}


HTML

<span onclick="GetName()">Call Web Method</span>


С#

[WebMethod]
      public static string GetData()
      {
          string name= "My name is Nirav Prabtani";

          return name;
      }