一般处理程序的使用(.ashx)

使用一般处理程序实现数据库中新闻信息的增删改查(基于三层架构):

      NewsListTemp.html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>

    <script src="../Scripts/jquery-1.7.1.js"></script>
    <script type="text/javascript">
        $(function() {
            //给所有的删除超级链接绑定点击的事件
            $("a:contains('删除')").click(function() {
                return confirm("是否真的的删除?");
            });
        });
    </script>
</head>
    <body>
        <table>
            <tr>
                <th>编号</th><th>标题</th><th>日期</th><th>创建人</th><th>操作</th>
            </tr>
            @trbody
        </table>

    </body>
</html>

        一般处理程序NewsList.ashx

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using WebDemo.BLL;

namespace WebDemo.Web.News
{
    /// <summary>
    /// Handler1 的摘要说明
    /// </summary>
    public class NewsList : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";

            //拿到所有的新闻
            BLL.HKSJ_Main mainService =new HKSJ_Main();
            List<Model.HKSJ_Main> mainList= mainService.GetModelList(string.Empty);
            StringBuilder sb =new StringBuilder();
            foreach (var hksjMain in mainList)
            {
                //<th>编号</th><th>标题</th><th>日期</th><th>创建人</th><th>操作</th>
                sb.AppendFormat("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td><td><a href='DeleteNews.ashx?id={0}'>删除</a>&nbsp;<a href='EditNews.ashx?id={0}'>修改</a></td></tr>",
                    hksjMain.ID,
                    hksjMain.title,
                    hksjMain.Date,
                    hksjMain.people
                    );
            }
            string tempString = File.ReadAllText(context.Request.MapPath("NewsListTemp.html"));

            context.Response.Write(tempString.Replace("@trbody", sb.ToString()));
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

         编辑页面:EditNewsTemp.html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
    <body>
        <form method="POST" action="ProcessEditNews.ashx">
            <table>
                <tr>
                    <td>新闻编号:</td>
                    <td>@ID
                    <input type="hidden" name="hidId" value="@ID"/>
                    </td>
                </tr>
                <tr>
                    <td>新闻标题:</td>
                    <td><input type="text" name="title" value="@title" /></td>
                </tr>
                <tr>
                    <td>新闻发布人:</td>
                    <td><input type="text" name="people" value="@people" /></td>
                </tr>

                <tr>
                    <td colspan="2">
                        <input type="submit" value="修改" />
                    </td>
                </tr>

            </table>
        </form>

    </body>
</html>

      编辑页面的处理逻辑:EditNews.ashx

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using WebDemo.BLL;

namespace WebDemo.Web.News
{
    /// <summary>
    /// EditNews 的摘要说明
    /// </summary>
    public class EditNews : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";
            string stringTemp = File.ReadAllText(context.Request.MapPath("EditNewsTemp.html"));

            int id = int.Parse(context.Request["id"] ?? "0");

            BLL.HKSJ_Main mainService =new HKSJ_Main();
            Model.HKSJ_Main mainModel = mainService.GetModel(id);
            stringTemp =
                stringTemp.Replace("@ID", mainModel.ID.ToString())
                    .Replace("@title", mainModel.title)
                    .Replace("@people", mainModel.people);

            context.Response.Write(stringTemp);

        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

          ProcessEditNews.ashx

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using WebDemo.BLL;

namespace WebDemo.Web.News
{
    /// <summary>
    /// ProcessEditNews 的摘要说明
    /// </summary>
    public class ProcessEditNews : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            int id = int.Parse(context.Request["hidId"] ?? "0");
            BLL.HKSJ_Main mainService =new HKSJ_Main();
            var news = mainService.GetModel(id);
            news.title = context.Request["title"];
            news.people = context.Request["people"];
            mainService.Update(news);

            context.Response.Redirect("NewsList.ashx");
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

      删除页面的处理逻辑:DeleteNews.ashx

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using WebDemo.BLL;

namespace WebDemo.Web.News
{
    /// <summary>
    /// DeleteNews 的摘要说明
    /// </summary>
    public class DeleteNews : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            int id = int.Parse(context.Request["id"]??"0");

            BLL.HKSJ_Main mainService =new HKSJ_Main();
            mainService.Delete(id);

            //页面跳转转回首页
            context.Response.Redirect("NewsList.ashx");

        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

 

Written by

说点什么

欢迎讨论

avatar

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  Subscribe  
提醒