我使用jquery ajax调用创建了一个不错的网页,但注意到没有调用Page_Load来获取jquery ajax POST请求。我需要Page_Load调用来访问登录用户的名称,使用POST接收的数据存储在数据库中,因为代码隐藏中的静态WebMethod无法访问Page对象。
我的问题:在POST请求中没有调用Page_Load这是正常的吗?如果是这样,如何获取用户名的Page对象,而不使用Page_Load?
在comment on this question中,我读到:不再维护对WebMethod的支持。您应该考虑切换到Web API,因为它得到了很好的支持(并且更简单!)
但谷歌搜索并没有真正产生关于Web API的信息,因为这是一个非常通用的搜索词。关于这个的任何信息?
更新
我的问题是通过在静态WebMethod中使用HttpContext解决的,如下所示,所以我不需要Page_Load。
答案 0 :(得分:1)
有两种方法可以做到这一点
在您的javascript中添加一个设置当前username
的变量,并将其作为参数传递给POST
方法。
var usrName = "@HttpContext.Current.User.Identity.Name";
HttpContext也可以在代码隐藏中的静态WebMethod中使用,因此您也可以直接使用它来实现相同的功能