ASP.NET 基本操作
N.1 页面跳转
this.Response.Redirect("login_fail.htm");
如果要打开新页面,可用如下语句:
this.Response.Write("<script>window.open(/"login_fail.htm/");</script>");
不过如果IE使用了屏蔽弹出窗口的插件,则会被屏蔽。
N.2 像JSP一样在HTML网页中插入C#代码
首先在.cs中创建一个public型的变量
public int Lines;
在其page load事件中初始化
this.Lines = 20;
在HTML页面中插入如下代码,生成一个20行的表格
<table border="1" bordercolor="#990099" cellpadding="0" cellspacing="0"> <% for(int i = 0; i < this.Lines; i++) { %> <tr> <td width="100%"> <%=i%> </td> </tr> <%}%> </table>
N.3 在页面间传递参数
N.3.1 字符串参数(GET)
发送参数
<A href="test.aspx?parm1=中文字符串" target="_blank" runat="server">测试</A>
接收参数
string s = Request.QueryString["parm1"];
对于中文参数,在传递后会出现字符串截断的情况,解决方安有两种:
- 第一种方法:
发送参数时先要Encode
"PotoList.aspx?repairgroup_name=" + HttpUtility.UrlEncode("儿童房'")
然后接收参数时要用Decode
string name = HttpUtility.Decode(Request.QueryString["repairgroup_name"])
- 第二种方法,修改web.config(推荐)
<globalization requestEncoding="gb2312" responseEncoding="gb2312" />
N.3.2 字符串参数(POST)
使用POST方式传递的参数,需使用如下方式接收:
Request.Form["参数名"]
如果要判断客户端的参数传递方式,需使用系统变量 Request.ServerVariables["REQUEST_METHOD"],例如:
if(Request.ServerVariables["REQUEST_METHOD"] == "POST") { ... }else if(Request.ServerVariables["REQUEST_METHOD"] == "GET") { ... }
N.3.3 对象型
如果想传递对象型参数,使用Session系统变量
//发送 Session["parm"] = arr; //接收 ArrayList arr = Session["parm"] as ArrayList;
Session.Remove("parm");
N.4 同时刷新多个Frame
Response.Write("<script language=/"javascript/">parent.frames[/"wLeft/"].location=/"Group.aspx/"</script>"); Response.Write("<script language=/"javascript/">parent.frames[/"wRight/"].location=/"Group2.aspx/"</script>");
N.5 程序设计部分
N.5.1 导入类库
<%@ Import namespace="Microsoft.Win32" %>
下面这些类库是属于缺省导入的:
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls;
N.5.2 路径
Server.MapPath(".") 获取当前站点的实际绝对路径,如 C:/Inetpub/wwwroot,如果需要生成文件的话,需要使用该绝对路径。