Вызовите метод Javascript из веб-метода с выделенным кодом - PullRequest
1 голос
/ 25 января 2011

В моем коде есть веб-метод:

[System.Web.Services.WebMethod]
public static string GetStateData(string state)
{
  //this is where i want to call a javascript method "GetItems"
}

У меня есть метод javascript, который извлекает некоторые значения для меня, и я хочу использовать одно из этих значений в своем веб-методе

function GetItems() {
        var variable1= $("#<%=Item1.ClientID %> input:checked");
        var variable2= $("#<%=Item2.ClientID %>").val();
        return [variable1.text(), variable2.val(), variable2];}

Я искал способы вызова метода javascript из веб-метода, но каждый раз, когда мой поиск приводит к вызову веб-метода из javascript.

Я действительно находил это, но это былосделано из кода проекта silverlight, и когда я попытался добавить правильную ссылку в код, его там не было

var result = HtmlPage.Window.Invoke("GetItems");

Есть ли ссылка, которую я пропускаю?

Спасибо за ваш ответ

Ответы [ 2 ]

3 голосов
/ 25 января 2011

Вы не можете этого сделать.Вы вызываете веб-метод через AJAX.Вы отправляете небольшие фрагменты информации статическому методу на сервере, который ничего не знает о конкретном объекте страницы (это не статично).

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

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

0 голосов
/ 26 января 2011

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

Вызов javascript из веб-метода невозможен, насколько я знаю, - вам нужнопонять различие между кодом на стороне сервера и на стороне клиента.

...