Ejemplo n.º 1
0
        /// <summary>
        /// 详情页面
        /// </summary>
        /// <param name="noticeId"></param>
        /// <returns></returns>
        public ActionResult NoticeDetailed(int noticeId)
        {
            try
            {
                //根据公告id查询出公告的信息
                ANoticeVo notice = (from tbNotices in myModels.B_Notice

                                    join tbNoticeType in myModels.S_NoticeType on tbNotices.NoticeTypeID
                                    equals tbNoticeType.NoticeTypeID
                                    where tbNotices.NoticeID == noticeId
                                    select new ANoticeVo
                {
                    NoticeName = tbNotices.NoticeName,
                    ReleaseTimeStr = tbNotices.ReleaseTimeStr,
                    NoticeContent = tbNotices.NoticeContent,
                    NoticeTypeName = tbNoticeType.NoticeType,
                    ReleaseTimeStrr = tbNotices.ReleaseTimeStr.ToString()
                }).Single();



                //加载公告内容
                string textFileName = Server.MapPath("~/Document/Notice/Text/") + notice.NoticeContent;
                if (System.IO.File.Exists(textFileName))
                {
                    //文件存在
                    notice.NoticeContent = System.IO.File.ReadAllText(textFileName);
                }
                else
                {
                    //文件不存在
                    notice.NoticeContent = "<p>没有找到公告内容,可能文件已经丢失;请重新编辑发布</p>";
                }

                //加载附件列表
                List <FilesVo> files = (from tbFile in myModels.B_File
                                        join tbNoticeTable in myModels.B_Notice on tbFile.NoticeID equals tbNoticeTable.NoticeID
                                        join tbFileType in myModels.S_FileType on tbFile.FileTypeID equals tbFileType.FileTypeID
                                        where tbFile.NoticeID == noticeId
                                        select new FilesVo
                {
                    FileID = tbFile.FileID,
                    FileTypeID = tbFile.FileTypeID,
                    Files = tbFile.Files,
                    FileTypeName = tbFileType.FileTypeName,
                    FileName = tbFile.Files
                }).ToList();
                ViewBag.isErrro = false;  //用来处理异常
                ViewBag.notice  = notice; //公告的内容
                ViewBag.files   = files;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                ViewBag.isErrro = true;
                ViewBag.notice  = null;//为了避免出现异常
                ViewBag.files   = null;
            }
            return(View());
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 查询公告信息 by id (修改)
        /// </summary>
        /// <param name="noticeId"></param>
        /// <returns></returns>
        public ActionResult SelectNoticeById(int?noticeId) //绑定数据哪里可复制查询方法,然后加多where查询语句
        {
            try
            {
                //根据公告id查询出公告的信息
                ANoticeVo notice = (from tbNotices in myModels.B_Notice
                                    join tbNoticeType in myModels.S_NoticeType on tbNotices.NoticeTypeID
                                    equals tbNoticeType.NoticeTypeID
                                    join tbSPromulgatorUnit in myModels.S_PromulgatorUnit on tbNotices.PromulgatorUnitID
                                    equals tbSPromulgatorUnit.PromulgatorUnitID
                                    where tbNotices.NoticeID == noticeId
                                    select new ANoticeVo
                {
                    NoticeID = tbNotices.NoticeID,
                    NoticeName = tbNotices.NoticeName,
                    PromulgatorUnitID = tbSPromulgatorUnit.PromulgatorUnitID,
                    Effective = tbNotices.Effective,
                    EffectiveStr = tbNotices.Effective.ToString(),
                    ReleaseTimeStr = tbNotices.ReleaseTimeStr,
                    NoticeContent = tbNotices.NoticeContent,
                    NoticeTypeName = tbNoticeType.NoticeType,
                    NoticeTypeID = tbNoticeType.NoticeTypeID,
                    ReleaseTimeStrr = tbNotices.ReleaseTimeStr.ToString()
                }).Single();
                //加载公告内容  文件地址名称 notice.NoticeContent;
                // Server.MapPath("~/Document/Notice/Text/")监听物理地址
                string textFileName = Server.MapPath("~/Document/Notice/Text/") + notice.NoticeContent;
                //
                if (System.IO.File.Exists(textFileName))
                {//文件存在
                    //ReadAllText把文件里面的所有行读取出来
                    notice.NoticeContent = System.IO.File.ReadAllText(textFileName);
                }
                else
                {//文件不存在返回
                    notice.NoticeContent = "<p>没有找到公告内容,可能文件已经丢失,请重新编辑发布</p>";
                }

                //加载附件列表到session
                List <FilesVo> sessionFiles = (from tbFile in myModels.B_File
                                               join tbNoticeTable in myModels.B_Notice on tbFile.NoticeID equals tbNoticeTable.NoticeID
                                               join tbFileType in myModels.S_FileType on tbFile.FileTypeID equals tbFileType.FileTypeID
                                               where tbFile.NoticeID == noticeId
                                               select new FilesVo
                {
                    FileID = tbFile.FileID,
                    FileTypeID = tbFile.FileTypeID,
                    Files = tbFile.Files,
                    FileTypeName = tbFileType.FileTypeName,
                    FileName = tbFile.Files
                }).ToList();
                for (int i = 0; i < sessionFiles.Count; i++)
                {
                    //通过正则表达式获取文件名称
                    //Files 需要被匹配的正则表达式
                    string strFileName = System.Text.RegularExpressions.Regex.Match(sessionFiles[i].Files, "(?<=fileName=).+?(?=\" )").Value;
                    sessionFiles[i].FileName = Server.UrlEncode(strFileName);
                }
                List <FilesVo> oldSessionFiles = new List <FilesVo>();
                foreach (FilesVo file in sessionFiles)
                {
                    //用来存储以前的数据
                    oldSessionFiles.Add(file);
                }
                //更新sessionFiles
                Session["sessionFiles"] = sessionFiles;
                //记录原来的附件
                Session["oldSessionFiles"] = oldSessionFiles;
                return(Json(notice, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(Json(null, JsonRequestBehavior.AllowGet));
            }
        }