我的问题很简单:如果我向aspx页面发送POST请求,是否会触发Page_Load事件?如果没有,我如何在我的页面上正确处理POST请求?
详细了解: 我一直在使用Facebook API来根据用户的名称对用户个人资料页面进行简单的研究。
我有一个DevExpress EditForm,其中包含有关该联系人的信息,以及一个“使用Facebook搜索”按钮,用于执行此操作:
function facebookLogin() {
FB.login(function (response) {
if (response.status === 'connected') {
FB.api('/search?type=user&q={' + edNomeAnagrafica.GetText() + ' ' + edCognomeAnagrafica.GetText() + '}', function (response) {
$.post("RicercaFBLoop.aspx", "Json=" + JSON.stringify(response.data) + "&paging=" + JSON.stringify(response.paging.next) + "&contatore=0");
});
}
}, { scope: 'email', return_scopes: true });
edNomeAnagrafica和edCognomeAnagrafica包含联系人的姓名和姓氏。
RicercaFBLoop.aspx是一种以这种方式构建的WebForm:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="RicercaFBLoop.aspx.vb" Inherits="SportCardEvolution.RicercaFBLoop" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script src="js/jquery.min.js"></script>
<title></title>
<script type="text/javascript">
function StartLoop() {
var c = txContatore.Text;
if (c === 0) {
txValoreSessione.Text = "Clear";
}
c++;
txValoreSessione.Text = txJson.Text;
if (txPaging.Text === null)
{
window.location = '<%= ResolveUrl("ElencoFB.aspx") %>';
}
$.get(txPaging.Text)
.done(function (result) {
$.post("~/RicercaFBLoop.aspx", "Json=" + result.data + "&paging=" + result.paging.next + "&contatore=" + c);
});
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<dx:ASPxTextBox ID="txJson" ClientInstanceName="txJson" runat="server" Visible="False"></dx:ASPxTextBox>
<dx:ASPxTextBox ID="txPaging" ClientInstanceName="txPaging" runat="server" Visible="false"></dx:ASPxTextBox>
<dx:ASPxTextBox ID="txContatore" ClientInstanceName="txContatore" runat="server" Visible="false" ClientSideEvents-ValueChanged ="StartLoop"></dx:ASPxTextBox>
<dx:ASPxTextBox ID="txValoreSessione" ClientInstanceName="txValoreSessione" runat="server" Visible="false" OnTextChanged="txSessionValue_TextChanged"></dx:ASPxTextBox>
</div>
</form>
</body>
</html>
虽然这是代码隐藏(RicercaFBLoop.aspx.vb):
Public Class RicercaFBLoop
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
txJson.Text = Request.Form("Json")
txPaging.Text = Request.Form("Paging")
txContatore.Text = Request.Form("Contatore")
End Sub
Protected Sub txSessionValue_TextChanged(sender As Object, e As EventArgs) Handles txValoreSessione.TextChanged
If (txValoreSessione.Text = "Clear") Then
Session("ElencoFB") = ""
Else
Session("ElencoFB") += txValoreSessione.Text
End If
End Sub
End Class
我的目的是检索POST请求发送的值,触发StartLoop()javascript函数,该函数将值放入另一个隐藏字段(并通过会话字段中的隐藏字段),并向自己发送POST直到有更多页面滚动。不幸的是,当我调试时,我可以正确地看到POST请求,但之后没有任何事情发生。我无法调试RicercaFBLoop.aspx的JS代码。
所以我想知道我是否采取了正确的方法。