我有一个自定义系统,我正在添加通知。通知在事件之后创建并存储在数据库中。通知与UserID相关,通知显示在site.master
页面中,底层代码可在site.master.cs
文件中检索。
此时通过点击通知并执行与该通知相关的操作来“解除”通知,例如阅读邮件,但我希望有一个“关闭”按钮,可以对许多通知执行此操作。我觉得最好通过使用jQuery触发Ajax调用而不是重新加载页面来实现。我发现this useful post给了我基本的概念,并且我已经在我的演示网站上运行良好但是为了更进一步,我确信我需要将UserID作为参数传递给函数。 / p>
麻烦的是UserID存储在Session
中,我不确定正确的方法。如何使用客户端功能检索服务器端的会话数据?然后我考虑使用称为拉取会话数据的方法,虽然我不确定浏览器中没有加载的页面是否可以访问它。
我还想过在母版页上使用这个方法,因为通知显示代码在主页面中,但是添加一个web方法会让它变得棘手,因为我不确定我是怎么调用它的,例如,Ajax调用的URL是一个aspx页面:
$.ajax({
type: 'POST',
url: 'PageName.aspx/GetDate', // <- surely 'site.master.cs/Dismiss isn't a good idea?
data: '{ }',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(msg) {
// Do something interesting here.
}
});
我很确定无法添加site.master
作为网址。
我总是可以把这个方法放在每个页面上,但这感觉就像是一种效率低下的方法,并且意味着我会在整个地方重复代码。我还创建了一个带有相应.cs文件的“ajaxHandler.aspx”文件,但我不确定它是否可以访问会话数据&amp;如果那是好的做法。
PS我没有添加代码,因为我认为这比语法更具结构性,但我很乐意发布任何有用的内容。