Я пытаюсь получить доступ к методу на стороне сервера со стороны клиента (это просто вызов метода сервера из 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 не поможет ....