Madhav Gunjal Ответов: 1

Как вызвать функцию из ascx. cs в javascript с помощью ajax-вызова?


Я создал один элемент управления, который имеет одну функцию, но я хочу вызывать эту функцию с AJAX-вызов на любой .aspx-страницу или главную страницу точно так же, как вызов функции из код за файл,с файл отделенного кода, но застрял с вызовом функции из acsx.файл CS на любой .aspx страница/Главная страница, на которой я в том числе/регистрации, которые контролируют.
это мой HTML
<div>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <input type="button" id="Button2" runat="server" value="Button" />
</div>

мой код ascx. cs
[WebMethod()]
[ScriptMethod()]
public static void myMethod(string text)
{
  Label1.text=text;
}

мой AJAX-вызов нового утра вызов функции из код за файл как
$(document).ready(function () {
    $("#Button2").click(function () {
        var text = $("#TextBox1").val();        
        $.ajax({
            type: "POST",
            url: "WebForm1.aspx/myMethod",
            data: "{ text: '" + text + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            async: "true",
            cache: "false",
            success: function (msg) {
                alert("success");
            },
            Error: function (x, e) {
                // On Error
            }
        });
    });
    });

в AJAX-вызов меня вызов функции из отделенного кода, то почему же URL-адрес путинга: "файл webform1.aspx-и метод mymethod", но меня смущает, когда о вызове функции из .ascx вносятся.в CS, как и что будет URL-адрес значение для этого ,потому что я просто с помощью управления на моей странице, как
<UC:userControl id="control1" runat="server" />

который я включил/зарегистрировал на своей странице, как
<%@ Register TagPrefix="UC" TagName="userControl " src="~/Controls/Mycontrol.ascx" %> 


Что я уже пробовал:

как я решил эту проблему?
i tried url value(s) like
<pre> url: "Mycontrol.ascx/myMethod",

тоже
<pre> url: "WebForm1.aspx/Mycontrol.ascx/myMethod",


но до сих пор не могу его получить

1 Ответов

Рейтинг:
0

F-ES Sitecore

Вы не можете читать с серверных элементов управления или обновлять их значения с помощью веб-метода, поэтому то, что вы пытаетесь сделать, никогда не сработает. Чтобы ответить на этот вопрос независимо от того, должен ли метод вызываться из любого места, вам лучше использовать обработчик ashx, чем webmethod. Гугл "вызов данного обработчика из jQuery" примеры реализации.


Madhav Gunjal

здесь у меня есть пользовательский элемент управления, так как же мне реализовать эту вещь с помощью пользовательского элемента управления и главной страницы?

F-ES Sitecore

Вы не можете встроить веб-методы в пользовательский элемент управления на странице

Madhav Gunjal

так есть ли какой-нибудь другой способ получить thsi?потому что я собираюсь использовать этот элемент управления на главной странице.

F-ES Sitecore

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

Madhav Gunjal

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