我想阅读使用Asp.net GridView contorl和分页的网站上的所有内容。现在,使用带有必需参数的__dopostback,使用Asp.Net网格的POST方法完成分页。
我尝试使用HttpWebRequest使用以下代码读取分页数据,但它总是抛出" 500内部服务器错误。"
public string GetPageData(int page)
{
var request = (HttpWebRequest)WebRequest.Create("http://localhost:61141/Default.aspx");
string postData = "__EVENTTARGET=ctl00$MainContent$GridView1&__EVENTARGUMENT=Page$"+ page;
request.Method = "POST";
var bt = System.Text.Encoding.ASCII.GetBytes(postData);
request.ContentLength = bt.Length;
request.ContentType = "application/x-www-form-urlencoded";
request.UserAgent = " Mozilla/4.0 (compatible; MSIE 6; Windows NT 5) ";
request.KeepAlive = false;
request.AllowWriteStreamBuffering = true;
string strResult;
Stream stream = request.GetRequestStream();
stream.Write(bt, 0, bt.Length);
stream.Close();
var response = request.GetResponse();
var sr = new StreamReader(response.GetResponseStream(), true);
strResult = sr.ReadToEnd();
return strResult;
}
请建议任何解决方法。 谢谢你提前。
答案 0 :(得分:1)
WebForms分页依赖于JavaScript,因此旨在在Web浏览器中执行,而不是像您在此处通过自定义调用执行。为什么不在Web应用程序中使用set up a Web API endpoint或其他启用REST的端点?这样做的另一个好处是,您可以将结果作为XML或JSON返回,从而消除了对屏幕抓取的需求,并使客户端处理变得更加容易。