Передать параметр в метод сервера, используя JavaScript - PullRequest
1 голос
/ 11 марта 2010

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

Параметр, который я хочу передать, является переменной, которая отличается от ddl.

Итак, у меня есть что-то вроде этого:

 var value = document.getElementById('ddlContact').value;
        <%=PopulateContactFields("value") %>

Это передает слово «значение», а не данные в значении.

Я не могу понять правильный синтаксис для передачи данных в значении.

Спасибо

Ответы [ 2 ]

0 голосов
/ 11 марта 2010

Как уже упоминалось, попытка получить доступ к коду C # непосредственно из javascript невозможна.

Однако вы можете общаться с ним косвенно .

Я думаю, что вам лучше всего использовать комбинацию jQuery и атрибута [WebMethod].

функция javascript, использующая jQuery для вызова AJAX:

function Search() {
    var search = $('#<%= ddlContact.ClientId %>').val();
    var options = {
        type: "POST",
        url: "Default.aspx/Hello",
        data: "{'name' :'" + search + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            alert(msg);
        }
    };
    $.ajax(options);
}

Код:

public partial class _Default : System.Web.UI.Page
{
    [WebMethod]
    public void Hello(string name)
    {
      return "Hi " + name;
    }
}
0 голосов
/ 11 марта 2010

Код, который вы показываете, выполняется на стороне сервера, когда генерируется HTML. Другими словами, он выполняется ДО того, как попадет в браузер, и у вашего пользователя была возможность сделать что-нибудь со страницей.

Независимо от того, какой синтаксис вы использовали бы здесь, нужная вам информация в настоящее время недоступна - она ​​еще не существует.

Правильный подход здесь заключается в том, чтобы отправить эту информацию на сервер, разместив страницу или используя AJAX, а затем, в конце цикла запроса / ответа, выполнить обработку

Другим вариантом будет обработка клиентской стороны с использованием Javascript

...