Передать параметр методу сервера, используя JavaScript
У меня есть открытая страница в коде за страницей, которая принимает строку. Я хотел бы вызвать этот метод из JavaScript.
Параметр, который я хочу передать, является переменной, которая отличается от ddl.
Итак, у меня есть что-то вроде этого:
var value = document.getElementById('ddlContact').value;
<%=PopulateContactFields("value") %>
Это передает слово "значение", а не данные в значении.
Я не могу понять правильный синтаксис для передачи данных в значении.
Спасибо
2 ответа
Как уже упоминалось, попытка доступа к коду 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