Передайте параметр методу сервера, используя JavaScript

StackOverflow https://stackoverflow.com/questions/2426375

Вопрос

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

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

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

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

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

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

Спасибо

Это было полезно?

Решение

Как упоминалось другие, попытка получить доступ к 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;
    }
}

Другие советы

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

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

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

Другой вариант - это выполнить сторону клиента обработки, используя JavaScript

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top