首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

JAVASCRIPT读取本地ASP.NET页面有关问题

2011-12-21 
JAVASCRIPT读取本地ASP.NET页面问题只想读取一个Test.aspx页面,把.aspx页面的源代码(包括服务器端的任何控

JAVASCRIPT读取本地ASP.NET页面问题
只想读取一个Test.aspx页面,把.aspx页面的源代码(包括服务器端的任何控件)
Test.aspx源代码如下:
/****************************************************************

<%@   Page   language= "c# "   Codebehind= "Test.aspx.cs "   AutoEventWireup= "false "   Inherits= "UserPopedom.Web.NavigationMenu.Test "   %>
<!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN "   >
<HTML>
<HEAD>
<title> Test </title>
<meta   name= "GENERATOR "   Content= "Microsoft   Visual   Studio   .NET   7.1 ">
<meta   name= "CODE_LANGUAGE "   Content= "C# ">
<meta   name= "vs_defaultClientScript "   content= "JavaScript ">
<meta   name= "vs_targetSchema "   content= "http://schemas.microsoft.com/intellisense/ie5 ">
</HEAD>
<body   MS_POSITIONING= "GridLayout ">
<form   id= "Form1 "   method= "post "   runat= "server ">
<asp:DataGrid   id= "DataGrid1 "   style= "Z-INDEX:   101;   LEFT:   216px;   POSITION:   absolute;   TOP:   112px "
runat= "server "> </asp:DataGrid>
</form>
</body>
</HTML>

*****************************************************************/


在HTML中JAVASCRIPT可以读出来

显示的内容跟上面的代码一样的;


问题是同样的代码放在.aspx中去处理

就会显示其生成后的源代码:

显示的内容如下:
/*****************************************************************

<!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN "   >
<HTML>
<HEAD>
<title> Test </title>
<meta   name= "GENERATOR "   Content= "Microsoft   Visual   Studio   .NET   7.1 ">
<meta   name= "CODE_LANGUAGE "   Content= "C# ">
<meta   name= "vs_defaultClientScript "   content= "JavaScript ">
<meta   name= "vs_targetSchema "   content= "http://schemas.microsoft.com/intellisense/ie5 ">
</HEAD>
<body   MS_POSITIONING= "GridLayout ">
<form   name= "Form1 "   method= "post "   action= "Test.aspx "   id= "Form1 ">
<input   type= "hidden "   name= "__VIEWSTATE "   value= "dDwtNTcyNzE4MDk2O3Q8O2w8aTwxPjs+O2w8dDw7bDxpPDE+Oz47bDx0PEAwPDs7Ozs7Ozs7Ozs+Ozs+Oz4+Oz4+Oz4vNOdKYRmg/fxi8tmIBO7mVPf9RA== "   />


</form>
</body>
</HTML>
*********************************************************************/

如何在.aspx中获取Test.aspx的源代码呢?????????????

或者知道为什么的告诉一下:

谢谢




[解决办法]
JAVASCRIPT客户端读取肯定就是aspx在客户端生成的html代码啊。
[解决办法]
GetPageHtml.aspx

<%@ Page language= "c# " validateRequest = "false " Codebehind= "GetPageHtml.aspx.cs "
AutoEventWireup= "false " Inherits= "eMeng.Exam.GetPageHtml " %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN " >


<HTML>
<HEAD>
<title> 得到网页源代码 </title>
<meta name= "GENERATOR " Content= "Microsoft Visual Studio 7.0 ">
<meta name= "CODE_LANGUAGE " Content= "C# ">
<meta name= "vs_defaultClientScript " content= "JavaScript ">
<meta name= "vs_targetSchema " content= "http://schemas.microsoft.com/intellisense/ie5 ">
</HEAD>
<body MS_POSITIONING= "GridLayout ">
<form id= "aspNetBuffer " method= "post " runat= "server ">
<div align= "center " style= "FONT-WEIGHT: bold "> 得到任意网页源代码 </div>
<asp:TextBox id= "UrlText " runat= "server " Width= "400px "> http://dotnet.aspx.cc/content.aspx
</asp:TextBox>
<asp:Button id= "WebClientButton " Runat= "server " Text= "用WebClient得到 "> </asp:Button>
<asp:Button id= "WebRequestButton " runat= "server " Text= "用WebRequest得到 "> </asp:Button>
<br>
<asp:TextBox id= "ContentHtml " runat= "server " Width= "100% " Height= "360px " TextMode= "MultiLine ">
</asp:TextBox>
</form>
</body>
</HTML>


GetPageHtml.aspx.cs

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;
using System.IO;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
namespace eMeng.Exam
{
/// <summary>
/// GetPageHtml 的摘要说明。
/// </summary>
public class GetPageHtml : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button WebClientButton;
protected System.Web.UI.WebControls.Button WebRequestButton;
protected System.Web.UI.WebControls.TextBox ContentHtml;
protected System.Web.UI.WebControls.TextBox UrlText;
protected System.Web.UI.WebControls.Button GetText;
private string PageUrl = " ";

private void Page_Load(object sender, System.EventArgs e)
{}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.WebClientButton.Click += new System.EventHandler(this.WebClientButton_Click);
this.WebRequestButton.Click += new System.EventHandler(this.WebRequestButton_Click);
this.GetText.Click += new System.EventHandler(this.GetText_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void WebClientButton_Click(object sender, System.EventArgs e)
{
PageUrl = UrlText.Text;
WebClient wc = new WebClient();
wc.Credentials = CredentialCache.DefaultCredentials;

///方法一:
Byte[] pageData = wc.DownloadData(PageUrl);
ContentHtml.Text = Encoding.Default.GetString(pageData);


/// 方法二:
/// ***************代码开始**********
/// Stream resStream = wc.OpenRead(PageUrl);
/// StreamReader sr = new StreamReader(resStream,System.Text.Encoding.Default);
/// ContentHtml.Text = sr.ReadToEnd();
/// resStream.Close();


/// **************代码结束********
///
wc.Dispose();
}

private void WebRequestButton_Click(object sender, System.EventArgs e)
{
PageUrl = UrlText.Text;
WebRequest request = WebRequest.Create(PageUrl);
WebResponse response = request.GetResponse();
Stream resStream = response.GetResponseStream();
StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default);
ContentHtml.Text = sr.ReadToEnd();
resStream.Close();
sr.Close();
}

private void GetText_Click(object sender, System.EventArgs e)
{
PageUrl = UrlText.Text;
WebRequest request = WebRequest.Create(PageUrl);
WebResponse response = request.GetResponse();
Stream resStream = response.GetResponseStream();
StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default);
ContentHtml.Text = sr.ReadToEnd();
resStream.Close();
sr.Close();
ContentHtml.Text = Regex.Replace(ContentHtml.Text, " <[^> ]*> ", " ");
//替换空格
ContentHtml.Text = Regex.Replace(ContentHtml.Text, "\\s+ ", " ");
}
}
}

具体的孟老大这里看
http://dotnet.aspx.cc/article/0a6660ce-4138-41ef-b882-15db65564709/read.aspx
[解决办法]
我的观点:

我想应该获取的是生成后的源码
因为你的Test.aspx是在URL中的,这样好像只能获取生成后的源码

至于你的Html获取到的源码,那只是一个文件,

获取URL中的源码和获取文件的内容是两个概念,

热点排行