------------------------------ Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
127.0.0.7是回环地址(LookBack),就是表示访问本机,LocalHost是它的别名。是无法在外部访问的。查看IP地址:ipconfig
Get和Post的区别:
设定Form的Method属性指定表单提交方式,Get(默认值)是通过URL传递表单值,Post传递的表单值是隐藏到Http报文件中, URL中看不到。
Get和Post的区别:Get是通过URL传递表单值,Post通过URL看不到表单域的值;Get传递的数据量是有限的,如果要传递大量数据不能用Get,比如Type="file"上传文章、Type="password"传递密码或者<textarea>发表大段文章,Post则没有这个限制;Post会有浏览器提示重新提交表单的问题,Get则没有。对于Post的表单位重新敲地址栏再刷新就不会提示重新提交了中,因为重新敲地址就没有偷偷提交的数据了。
Get方式URL数据格式,服务器文件名后跟着“?”,由于客户端可能向服务器端提交多个键值对,键值对之间用“&”进行分割,如果URL中有汉字、特殊符号等,则需要对URL进行编码。
表单域只有设定了Name的才会被提交给服务器(用Get方式看的清楚)。如果给Submit按钮设定Name,那以按钮的Value也会被提交给服务器。
例:
<head>
<title></title>
</head>
<body>
<form action ="Hello.ashx"method="post">
<input type ="hidden"name="ispostback" value ="true" />
用户名:<input type ="text" name="UserName"value="@value" />
<input type ="submit" value ="提交" />
@msg
</form>
</body>
</html>
<%@ WebHandler Language="C#"Class="Hello" %>
using System;
using System.Web;
public class Hello : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/html";
//string username = context.Request["UserName"];
//if (string.IsNullOrEmpty(username))
//{
// context.Response.Write("直接进入");
//}
//else
//{
// context.Response.Write("提交进入");
//}
string username = context.Request["UserName"];
string msg="";
string ispostback = context.Request["ispostback"];
if (ispostback == "true")
{
context.Response.Write("提交进入");
msg = username + "你好!";
}
else
{
context.Response.Write("直接进入");
username = "";
msg = "";
}
string fullpath = context.Server.MapPath("Hello.htm");//得到文件的全路径
string content = System.IO.File.ReadAllText(fullpath);//读取文件
content=content.Replace("@value",username);
content = content.Replace("@msg", msg);
context.Response.Write(content);
}
publicbool IsReusable {
get {
return false;
}
}
}
ViewState初探(重点,常考)
Label版本的值存到了ViewState中,TextBox版本的不用存,因为TextBox就是Input,自己就会提交给服务器,不需要隐藏字段。
用Asp.net重写Div文本自增(还要同时递增Label的宽度,注意Width的单位是Unit类型,不是简单的Int)
Label1.Text=(Convert.ToInt32(Label1.Text)+1).ToString)_;
Label1.Width=new Unit(Label1.Width.Value+10);
查看生成的源代码,ASP.Net将所有隐藏内容统一放到了名字为_VIEWSTATE的隐藏字段中,使用序列化算法将所有隐藏内容放到一个字符串中。点击几次在使用ViewStateDecode这个工具查看ViewState内容,发现了确实将这些改变的内容放到了ViewState中。存储非表单域、非Value值的容器。
禁用ViewState的方法:禁用单个控件的ViewState设定enableviewstate=false,禁用ViewState以后TextBox版本不受影响,Div版本受影响,因为Input的Value不依靠ViewState。禁用整个页面的在Aspx的Page指令加上 EnableViewState="false" 。内网系统、互联网的后台可以尽情的用ViewState。
回答ViewState