ASP.NET 4.0 - вызов метода на стороне сервера из метода на стороне клиента - PageMethods - PullRequest
1 голос
/ 26 июля 2010

Я пытаюсь получить доступ к методу на стороне сервера со стороны клиента (это просто вызов метода сервера из javascript).Я использую .NET 4.0 Visual Studio 2010 Ultimate.Я строю веб-контроль (ascx).У меня есть страница ascx (html элемента управления) и страница ascx.cs: ascx выглядит следующим образом:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="BoxButton.ascx.cs" Inherits="ATB.Controls._BoxButton" %>

<asp:ScriptManager ID="SM_ScriptManager" runat="server" EnablePageMethods="true" />
<script type="text/javascript">
    function handle() {
        PageMethods.manageHandler();
    }
</script>
<span id="BoxButton_HtmlSpan" runat="server" onclick="handle();" style="background-color:#efefef;border-style:solid;border-width:1px;border-color:#cccccc;height:25px;text-align:center;padding:3px 3px 3px 3px;font-family:Arial, Helvetica, sans-serif;font-size:12px;font-style:normal;color:#333333;line-height:15px">
    <asp:Label runat="server" Text="Button" id="Text_Label"></asp:Label>
</span>

И это файл ascx.cs (только печать функции):

[System.Web.Services.WebMethod]
   public static string manageHandler() {
   int i = 0;
   System.Console.WriteLine("Ciao");
   return "Hello";
}

Ну, как вы видите, я пытаюсь решить мою проблему с помощью методов страницы, ну, это не работает, и я всегда getPageMethods не определяется менеджером времени выполнения JScript.Ну, возможно ли, что PageMethods недоступны в .net 4.0?

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

РЕДАКТИРОВАТЬ:

Ну, этоКажется, что JQuery является правильным решением ... но может ли он позволить мне вызвать метод на стороне сервера?Я ожидаю, потому что мы говорим о ajax, верно?

РЕДАКТИРОВАТЬ 2:

Ах ... Еще один вопрос ... Я пытался использовать веб-метод, ноэто не работает из-за того, что я не могу найти PageMethods в javascript, пока я устанавливаю scriptManager и атрибут метода WebMethod, как указано ....

Это потому, что я работаю внутри ascx ??????возможный?????Тогда даже jQuery не поможет ....

Ответы [ 3 ]

1 голос
/ 26 июля 2010

Я считаю, что PageMethods доступны только на страницах , но не на пользовательских элементах управления.

0 голосов
/ 27 июля 2010

Я нашел еще один учебник, чтобы сделать это с JQuery: Вызов функции на стороне сервера из JQUERY

надеюсь, это поможет.

0 голосов
/ 27 июля 2010

Я бы порекомендовал использовать jQuery, это намного элегантнее. Вот пример

...