一般处理程序(ashx)

1.一般处理程序,感觉就像是一个方法
和[HttpPost]
public ActionResult ProcessRequest()
好像差不多。(习惯MVC)
调用的时候url和之前的不一样。
先生成一个ashx,再搭配一个html。
2.初始代码

    public class FirstHandler : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = \"text/plain\";
            context.Response.Write(\"Hello World\");
        }

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

localhost:…/FirstHandler.ashx下显示Hello Word。
3.下面使用它实现一个生成随机数的代码

3.1在ashx中加上一个生成随机数的代码

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

        private string CreateRandomNumber()
        {
            string allChar =
                \"0,1,2,3,4,5,6,7,8,9\";
            string[] allCharArray = allChar.Split(\',\');
            string randomCode = \"\";
            int temp = -1;
            Random rand = new Random();
            for (int i = 0; i < 4; i++)
            {
                if (temp != -1)
                {
                    rand = new Random(i * temp * ((int)DateTime.Now.Ticks));
                }
                int t = rand.Next(9);
                if (temp == t)
                {
                    return CreateRandomNumber();
                }
                temp = t;
                randomCode += allCharArray[t];
            }
            return randomCode;
        }

3.2.在前台写个显示的html

<div>
        <input id=\"number\" type=\"text\" readonly=\"readonly\" style=\"width:60px;\" height=\"30\">
    </div>
    <div>
        <input type=\"button\" value=\"换一个\"  =\"changeNumber()\">
    </div>

3.2调用ashx中的代码
(要加js文件…)

<  src=\" s/jquery-3.3.1.min.js\"></ >
    < >
        function changeNumber() {
            $.ajax({
                type: \"post\",
                url:\'./../ASHX/FirstHandler.ashx?\',
                dataType: \"text\",
                success: function (data) {
                    $(\"#number\").val(data);
                },
                error: function (e) {
                    changeNumber()
                }
            });           
        }
    </ >

这样就可以实现生成随机数了。
4.ASHX的用途
用于处理页面的信息,生成动态图片,动态文本等。一般用于异步处理。

收藏 打印