使用WebClient自动填写并提交ASP.NET页面表单
使用WebClient自动填写并提交ASP.NET页面表单
在.NET中通过程序填写和提交表单还是比较简单。比如,要提交一个如下图所示的登录表单:
填写和提交以上表单的代码如下:
// 要提交表单的URI字符串。
string uriString = "http://www.xxx.com/Login.aspx";
// 要提交的字符串数据。
string postString = "userName=user1&password=password1";
// 初始化WebClient
WebClient webClient = new WebClient();
webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
// 将字符串转换成字节数组
byte[] postData = Encoding.ASCII.GetBytes(postString);
// 上传数据,返回页面的字节数组
byte[] responseData = webClient.UploadData(uriString, "POST", postData);
// 返回的将字节数组转换成字符串(HTML)
string srcString = Encoding.UTF8.GetString(responseData);
srcStrinig 就是提交表单后所返回页面的HTML。怎么样,很简单吧。
但是,以上代码可以提交ASP或JSP生成的表单,却不能提交ASP.NET表单。因为提交ASP.NET表单时,必须给“__VIEWSTATE”和“__EVENTVALIDATION”赋值。“__VIEWSTATE”和“__EVENTVALIDATION”的值可以通过在要提交的页面上按右键“查看源文件”中找到。如下:
id="__VIEWSTATE" value="/wEPDwUKM
相关文档:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="图片滑动.aspx.cs" Inherits="ASP.net.图片滑动" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  ......
自从用了 ASP.Net MVC后就喜欢上了它 ,因为MVC对服务器控件的依赖大大减少,它生成的HTML页面就比WebForm清爽多了,加载速度有了明显的改善。
但对于页面中内嵌script,还是不能彻底的避免,如:
<script type="text/javascript" language="javascript">
//<!--
function DepositPa ......
要实现a控件控件触发b控件服务器端事件,需给a控件添加js脚本,以b控件名义提交页面,具体代码:
var theForm = document.forms['form1'];
theForm.__EVENTTARGET.value = "b"; //触发b控件服务器端方法
theForm.__EVENTARGUMENT.value = "a trigger";//传递的参数
theForm.submit();
注意:需要设置页面属性中的 enab ......
suggest.js文件(在引入suggest.js文件前需要先引入jquery-1.4.2.min.js):
$(function() {
var k = -1;
//给查询文本框绑定click keyup事件,进行这两个事件,自动查询数据
$("#FrmChangshang").bind('click keyup', function(event) {
//获取键盘操作事件代码
var keyc = event ......
最近在看《asp.net通用模块及典型系统开发实例导航》,其中用到了MD5加密,代码如下: /// <summary>
/// 字符串加密函数
/// </summary>
/// <param name="strInput">输入被加密的字符串</param>
/// <returns>加密后的字符串</return ......