Передайте параметр методу сервера, используя JavaScript
-
19-09-2019 - |
Вопрос
У меня есть публика в моей странице за страницей, которая принимает строку. Я хотел бы назвать этот метод из 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