我用jquery ajax调用了一个很好的网页,但注意到Page_Load未被调用用于jquery ajax POST请求。我需要Page_Load调用来访问已登录用户的名称,以通过POST接收到的数据来存储数据库,因为代码隐藏中的静态WebMethod无法访问Page对象。Page_Load未在POST请求上调用
我的问题:Page_Load没有被POST请求调用是正常的吗?如果是这样,如何获取用户名的Page对象,而不使用Page_Load?
在comment on this question我读:支持WebMethod不再维护。您应该考虑切换到Web API,因为它支持得很好(并且更简单!)
但是,使用Google搜索并没有真正产生关于Web API的信息,因为这是一个非常普遍的搜索术语。有关于此的任何信息?
更新:
我的问题是由静态的WebMethod,使用的HttpContext如下评论解决,所以我并不需要的Page_Load。
是存储在'session'您的用户名直接实现同样的事情? – Curiousdev
@Curiousdev不,用户名取自Page.User.Identity.Name。而Session也不适用于静态WebMethod。 – Roland
您正在使用ajax ...因此,您在“POST”后不会有Page_Load,因为您的页面未刷新。你可以在ajax post的响应中刷新你的页面,但是如果你使用ajax,这没有多大意义。你必须创建一个策略来在响应后访问这个值。但是您首先需要了解ajax请求的工作原理。 –