"通知"功能是web2.0等互动性较强的网站的标配,主要的好处,就是让用户更加方便,不用劳心劳神去查找,和自己相关的结果能够及时收到通知。本文来源:http://www.wojilu.com/forum1/topic/4120 


它的出现位置如下图:




下面谈谈在 wojilu 综合系统二次开发过程中,基本的使用方法。

1)声明一个 public INotificationService ntService { get; set; } 对象属性,然后实例化。在service或controller中都可以,比如


public class PostService {
    public INotificationService ntService { get; set; } 

    public PostService() {
        ntService = new NotificationService();
    }

    public void Save( ContentPost post ) {
        // 你的代码
        String msg = string.Format( "您的投递 <a href=\"{0}\">{1}</a> 已经正式通过", alink.ToAppData( post ), post.Title );
        ntService.send( post.Creator.Id, msg );
    }
}


2)通过 send 方法发送

也就是上面代码中的如下部分:


String msg = string.Format( "您的投递 <a href=\"{0}\">{1}</a> 已经正式通过", alink.ToAppData( post ), post.Title );
ntService.send( post.Creator.Id, msg );

这个 send 方法包括如下三个重载,用法请看注释:




【管理员接受的通知】


在上面第一幅截图中,有两个通知,左上的通知是管理员才能收到的。当普通用户给"网站"这个类型,而不是"用户"类型发送通知的时候,管理员作为"网站"的负责人,就会收到通知。


所以,直接给"网站"发送通知,也就意味着管理员可以直接收到。代码如下:

nfService.send( 0, typeof(Site).FullName, msg, NotificationType.Normal );

"网站"这个类型的Id的值是0,类型是 typeof(Site).FullName。


关于“我记录网站综合系统”中的“网站”、“用户”、“群组”等成员类型的区别,请参看此处:
http://www.wojilu.com/space/author/Blog1/Post/22