ajax post метод не работает в vb.net - PullRequest
2 голосов
/ 20 декабря 2010

Я использую jquery, поэтому использую ajax для публикации данных, но по какой-то причине, когда я нажимаю на submit, страница не переходит от aspx к aspx.vb на обратной стороне.вот мой код -

 $(document).ready(function() {
      $("#btnsave").click(function() {
          var firstname = $("#" + '<%=firstname.ClientID%>').val(); 
          $.ajax({
              type: "POST",
              url: "student.aspx/new_class",
              data: "firstname="+ firstname + ";",
              contentType: "application/json; charset=utf-8",
              dataType: "json",
              success: function() {                     
              }
          });
      });
  });

new_class - это мой веб-метод на стороне vb.net.Теперь, если я добавлю предупреждение в функцию btnsave onclick, я увижу значение имени в предупреждении.Но страница не вызывает функцию new_class после этого.Любые идеи, где я иду не так?

1 Ответ

2 голосов
/ 20 декабря 2010

Этот URL неверен для сопоставления с методом в коде на стороне сервера.

Я предполагаю, что вы пытаетесь вызвать метод с именем new_class в student.aspx.vb. Это правильно?

Что вы хотите сделать, это создать отдельную страницу для этого запроса. Может быть, что-то вроде student_ajax.aspx или что-то в этом роде. Как вы организуете это зависит от вас. Самый простой способ сделать то, что вы пытаетесь сделать, это сделать логику new_class логикой Page_Load на новой странице. В этом методе вы сгенерируете JSON (который, как я полагаю, вы делаете вручную и правильно, но для другого вопроса, если он возникнет) для возврата клиенту.

Заметьте, однако, что на этой странице вам нужно сделать немного хитрости. Во-первых, избавьтесь от всего HTML на самой странице. Вы хотите вернуть только JSON, без каких-либо оберток. Затем, когда вы генерируете строку ответа в логике code-behind, вам нужно установить заголовок на соответствующие заголовки и вывести строку:

Response.Clear()
Response.ContentType = "application/json"
Response.Write(myJSONString)
Response.End()

Обратите внимание, что все это было от руки, поэтому в этой реализации могут отсутствовать одна или две детали. И я знаю , есть более изящные способы сделать это. Я уверен, что вы можете найти учебник или два в Google. По сути, вы пытаетесь создать на сервере специальный обработчик для запроса AJAX, который возвращает данные JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...