ajax post方法无法在vb.net中运行

时间:2010-12-20 18:04:43

标签: jquery ajax vb.net

我正在使用jquery所以使用ajax发布数据,但由于某些原因,当我点击提交时,页面不会从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方面的webmethod。现在,如果我在btnsave onclick函数中发出警报,我会在警报中看到firstname值。但是之后页面不会调用new_class函数。 我出错了什么想法?

1 个答案:

答案 0 :(得分:2)

该URL不适用于映射到服务器端代码上的方法。

我假设您正在尝试在new_class中调用名为student.aspx.vb的方法。这是对的吗?

您要做的是为此请求创建单独的页面。也许像student_ajax.aspx或类似的东西。你如何组织它取决于你。执行您要执行的操作的最简单方法是将new_class逻辑设置为新页面中的Page_Load逻辑。在那个方法中,你将生成JSON(我假设你正在手动和正确地做,但是如果出现这个问题则是另一个问题)返回给客户端。

但请注意,在该页面中,您需要做一些诡计。首先,摆脱页面本身的所有HTML。您希望仅返回 JSON,而不是包含在任何HTML中。然后,当您在代码隐藏逻辑中生成响应字符串时,您需要将标头设置为正确的标头并输出字符串:

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

请注意,这一切都是徒手的,因此在此实现中可能会缺少一两个细节。我知道有更优雅的方法来做到这一点。我相信你可以在Google上找到一两个教程。基本上你要做的是在服务器上为AJAX请求创建一个自定义处理程序,返回JSON数据。