如何在服务器端获取客户端的数据
在login.aspx页面中有一个INPUT客户端控件
<input type="text" id="txtUserName" maxlength="20" />
现在要在login.aspx.cs文件后台编码中获取这个txtuserName的value值。
有三种方法:
一、把txtUserName作为服务器端控件运行
如: <input id="Text1" name="Text1" type="text" value="htmlstring" runat="server" />
客户端操作:document.getElementById ("Text1").value="aaa";
服务端操作:string str = Text1.Value;
二、在页面中放置一个隐藏域控件input(hidden)控件,作为服务器端运行,然后取或者设置txtuserName的Value...
?/P>
这两种方法可以在服务器端改变客户端控件的值。
?/P>
三 <input type="text" name="txtUserName" maxlength="20" /> //注意 :name
cs:
string str = Request.Form["txtUserName"].Trim();
注:第三种办法在VS2005中可能这引起 请求验证 异常。
validateRequest=false 可以禁用请求验证
解决方案又三种,
1.静止页面的validateRequest
<%@ Page validateRequest="false" %>
2.设置web.config
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
3.我个人认为是最好的,就是采用Server.HtmlEncode这个方法
我改动如下
string urlPage = "";
urlPage = UrlText.Text;
WebRequest request = WebRequest.Create(urlPage);
WebResponse response = request.GetResponse();
Stream resStream = response.GetResponseStream();
StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default);
ContentHtml.Text = Server.HtmlEncode(sr.ReadToEnd());
resStream.Close();
sr.Close();