http://blog.csdn.net/burongwawa520/article/details/38471839
.ashx 文件用于写web handler的。.ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类,它免去了普通.aspx页面的控件解析以及页面处理的过程。其实就是带HTML和C#的混合文件。
.ashx文件适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。很多需要用到此种处理方式。此文档提供一个简单的调用ashx文件的Demo,并贴出关键文件的源码。
以下为Demo中Login.ashx文件中的源码:
- public class Login : IHttpHandler {
- public void ProcessRequest (HttpContext context) {
- context.Response.ContentType = "application/json";
- //GET方式获取传递的数据
- //string username = context.Request.QueryString["username"];
- //string password = context.Request.QueryString["password"];
- //POST方式获取传递的数据
- string username = context.Request.Form["username"];
- string password = context.Request.Form["password"];
- string message = null;
- if (string.IsNullOrEmpty(username))
- {
- message = "用户名不能为空";
- context.Response.Write("{\"success\":false,\"message\":\"" + message + "\"}");//此JSON格式非常重要,否则会执行jquery的的error函数
- context.Response.End();
- }
- if (string.IsNullOrEmpty(password))
- {
- message = "密码不能为空";
- context.Response.Write("{\"success\":false,\"message\":\"" + message + "\"}");
- context.Response.End();
- }
- if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password))
- {
- if (username.ToUpper() == "ADMIN" && password == "123")
- {
- message = "登录成功";
- context.Response.Write("{\"success\":true,\"message\":\"" + message + "\"}");
- }
- else
- {
- message = "用户名或密码错误";
- context.Response.Write("{\"success\":false,\"message\":\"" + message + "\"}");
- }
- }
- context.Response.End();
- }
- public bool IsReusable {
- get {
- return false;
- }
- }
- }
以下为html中的源码:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>jsquery访问ashx文件</title>
- <script language="javascript" type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
- <script language="javascript" type="text/javascript">
- function login() {
- $.ajax({
- url: 'common/handler/Login.ashx',
- type: 'POST',
- data: { 'username': $("#txtUsername").val(), 'password': $("#txtPassword").val() },
- dataType: 'json',
- timeout: 50000,
- //contentType: 'application/json;charset=utf-8',
- success: function (response) {
- alert(response.message);
- },
- error: function (err) {
- alert("执行失败");
- }
- });
- }
- </script>
- </head>
- <body>
- <div style="width:400px; height:300px; margin:0 auto; background:#c0c0c0;">
- <dl style=" width:270px;">
- <dd><span>用户名:</span><input type="text" style=" width:150px;" id="txtUsername" /></dd>
- <dd><span>密 码:</span><input type="password" style=" width:150px;" id="txtPassword" /></dd>
- <dd><input type="button" style=" width:65px; height:23px; float:right;" onclick="login()" value="登录" /></dd>
- </dl>
- </div>
- </body>
- </html>