用C#模拟 Java Bean (四)—— Manage

之前查了一下 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());
            }
        }
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值