之前查了一下 MVC
- SqlPojo 当成 Model
- 这里写个 Manage 当成 View
- 上一篇的 Control 当 Control
错了不怪我。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections;
/// <summary>
/// Manage 的摘要说明
/// </summary>
public class Manage
{
public Manage()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private static ActionResult ar = new ActionResult();
public static ActionResult ExecuteAction(string authStr, string actionName, Hashtable param)
{
try
{
_Login user = UserControl.GetUser(authStr);
switch(actionName)
{
case "Login":
Manage.ar.Reset(0, "", UserControl.Login(param));
break;
case "Logout":
Manage.ar.Reset(0, "注销成功.", null);
break;
case "GetMyInfo":
Manage.ar.Reset(0, "", UserControl.GetMyInfo(user));
break;
case "UpdateUserInfo":
Manage.ar.Reset(0, "", UserControl.UpdateUserInfo(user, param));
break;
case "ChangePassWord":
Manage.ar.Reset(0, "", UserControl.ChangePassWord(user, param));
break;
case "PostNewTopic":
Manage.ar.Reset(0, "", ForumControl.PostNewTopic(user, param));
break;
case "GetLastTopic":
Manage.ar.Reset(0, "", ForumControl.GetLastTopic());
break;
case "SearchTopic":
;
break;
default:
Manage.ar.Reset(Constants.AR_Code_NoOperate, "未知的动作:" + actionName, null);
break;
}
}
catch (ActionFaildException e)
{
ar.Reset(1, e.Message, null);
}
catch (Exception e)
{
Manage.ar.Reset(1, "未知错误:" + e.Message, null);
}
return Manage.ar;
}
}
Ajax.aspx.cs 服务页
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Script.Serialization;
using System.Data;
using System.Collections.Specialized;
using System.Collections;
public partial class AjaxPage : System.Web.UI.Page
{
private static JavaScriptSerializer json = new JavaScriptSerializer();
private static string[] encryptKeys = new string[] { "PassWord", "NewPassWord"};
private static Hashtable param = new Hashtable();
private static ActionResult ar = new ActionResult();
protected void Page_Load(object sender, EventArgs e)
{
AjaxPage.param.Clear();
foreach (string s in Request.QueryString.AllKeys)
{
AjaxPage.param[s] = Request.QueryString[s];
}
foreach (string s in Request.Form.AllKeys)
{
AjaxPage.param[s] = Request.QueryString[s];
}
AjaxPage.Encrypt();
string action = AjaxPage.param["Action"] == null ? "" : AjaxPage.param["Action"].ToString();
string authStr = Session["AuthStr"] == null ? "" : Session["AuthStr"].ToString();
AjaxPage.ar = Manage.ExecuteAction(authStr, action, AjaxPage.param);
switch (action)
{
case "Login":
if (ar.Result is _Login)
{
Session["AuthStr"] = (ar.Result as _Login).AuthStr;
ar.Result = null;
}
break;
case "Logout":
Session.Clear();
break;
default: break;
}
//Request.QueryString.Clear();
Response.Write(json.Serialize(AjaxPage.ar));
Response.End();
}
private static void Encrypt()
{
foreach (string key in AjaxPage.encryptKeys)
{
if (AjaxPage.param.ContainsKey(key))
{
AjaxPage.param[key] = Constants.Encrypt(param[key].ToString());
}
}
}
}