ASP.Net 利用反射调用页面方法
现在很多的站点都是基于JQueryUI、ExtJS等等界面库开发的,可以说前台使用了大量的脚本及静态页面,而后台往往只做为请求页面数据来用,那么合理的利用反射,通过传递指令(或动作)的参数,调用页面的相关方法,便可以减少很多的代码量。
1、所有的页面都继承于一个基类BasePage
2、在BasePage类中OnLoad事件增加反射的代码
3、页面中增加相应的方法
string action = Request.QueryString["action"];
if (action != null)
{
Type t = this.GetType();
string result = (string)t.InvokeMember(action, BindingFlags.Instance | BindingFlags.Public | BindingFlags.InvokeMethod, null, this, null);
Response.Write(result);
Response.Flush();
Response.End();
}
例如,请求的地址:http://www.test.com/test.aspx?action=GetOperList
那么,只需要在test.aspx页面中有相应的 private string GetOperList() 方法,便能反射执行,返回相应的数据。
看起来有点像MVC框架中的Controller ^_^
相关文档:
设计意图:将login页面中的登录信息保存在login的Cookie中,转到Home页面时,利用得到的Cookie值就能自动登录
login页面前台关于Cookie的代码:
<td>
<asp:DropDownList ID= ......
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// <summary>
/// javascript弹出窗口封装类
/// </summary>
public static class JSCommon
......
Cookie为客户端信息存放对象,可以把用户的信息保存在用户本地,不必总是访问服务器
与Session不同,Session为用户全局变量,对于该用户的所有操作过程都有效。
//1。创建Cookie对象
HttpCookie newCookie = new HttpCookie("User");
//2。Cookie中添加信息项:为键值对,key/value
newCookie.Values.Add("Name" ......
Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法。你可以使用这个文件实现应用程序安全性以及其它一些任务。下面让我们详细看一下如何在应用程序开发工作中使用这个文件。
概述
Global.asax 位于应用 ......
1
private void Focus(string sDomID)
{
RegScript("focus", "document.getElementById(\"" + sDomID + "\").focus();");
  ......